Variablen == gibt immer false aus.

Diskutiere == gibt immer false aus. im Allgemeine Java-Themen Bereich.
C

Clashbestie

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:
 
mrBrown

mrBrown

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.
 
Thema: 

== gibt immer false aus.

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben