Variablen == gibt immer false aus.

GELÖSST
Ich nutze diesen Code um eine Funktion aufzurufen,
Java:
temp = (Byte.parseByte(GraphicalUserInterface.getInput("Enter the Numbering System of the first Number here:",1)));
welche wie folgt aussieht:
Java:
public String getInput(String output, int type) {
            if (type == 1) {
                System.out.println(type);
            }else if (type == 2) {
            
            }else if (type == 3) {
        
            }
        return "error";
    }
eigentlich sollte der Wert von type(1) in der Console ausgegeben werden. Wird er aber nicht da die Überprüfung type == 1 false ergibt und es wird "error" zurückgeben was natürlich einen Fehler auslöst da Buchstaben nicht nach Byte convertiert werden können.
Als "Beweis" der Fehler:
Code:
Exception in thread "main" java.lang.NumberFormatException: For input string: "error"
    at java.lang.NumberFormatException.forInputString(Unknown Source)
    at java.lang.Integer.parseInt(Unknown Source)
    at java.lang.Byte.parseByte(Unknown Source)
    at java.lang.Byte.parseByte(Unknown Source)
    at zahlSetzen.Main.main(Main.java:16)
Hab es gelösst weis zwar nicht wie aber nach dem Hundertstenmal hat es geklappt. :rolleyes:
 
Vergleiche sollte man eher über ".equals()" vornehmen
Bei primitiven Typen ist == das richtige...


eigentlich sollte der Wert von type(1) in der Console ausgegeben werden. Wird er aber nicht da die Überprüfung type == 1 false ergibt und es wird "error" zurückgeben was natürlich einen Fehler auslöst da Buchstaben nicht nach Byte convertiert werden können.
DerVergleich schlägt ziemlich sicher nicht fehl und Wert wird auf der Konsole ausgegeben - nur gibt deine Methode trotzdem sofort "error" zurück und dadurch gibts den Fehler :)


Beschreib doch mal, was das ganze machen soll.
 
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben