2017-06-04 3 views
-2

Ich mag eine persönliche ModLoader für Minecraft kodieren (Dateien erstellen, Dateien herunterladen, Dateien sortieren, usw.) und das erste Fenster, das erstellt wird, ist ein JOptionPane, die für eine Version fragt (i wirklich in Java-Code nicht tun lang, ich benutze nicht spinner, nur ein "msg dialog" fragt nach einer version). Der Code ist:Nullpointer trotz Angabe

public JOptionPane version = new JOptionPane(); 
public String modversion; 

public Version() 
{ 
    showVersion(); 
} 

public static void main(String[] args) 
{ 

} 

public void showVersion() 
{ 
    //input = version 
    String vers = version.showInputDialog("Welche Version soll modifiziert werden?"); 

    if (vers.equals(null)) { 
      return; 
    } else { 
     if(vers.equals("1.5.2") || vers.equals("1.6.2") || vers.equals("1.6.4") || vers.equals("1.7.2") || vers.equals("1.7.10") || vers.equals("1.8") || vers.equals("1.8.9") || vers.equals("1.9") || vers.equals("1.10.2") || vers.equals("1.11.2")) 
     { 

      //mod version is saved as String (title for the config list) 

      modversion = vers; 
      return; 
     } else { 
      // with incompatible input the method will be repeated 
      JOptionPane.showMessageDialog(null, "Diese Version wird leider nicht supportet"); 
      showVersion(); 
     } 
    } 
} 

Wenn Sie nur "OK" drücken, würde die Eingabe gleich "null":

if (vers.equals(null)) { 
      return; 
    } 

aber es dont das Verfahren beenden, es sagt Nullpointer. Warum hört es nicht einfach auf?

+0

Bitte vollständige StackTrace einbeziehen. – Vaiden

Antwort

1

Es ist, dass Sie eine Ausnahme erhalten hier. Hier :

if (vers.equals (null)) {

Sie versuchen, eine Methode auf eine Variable aufzurufen, die null ist. Wie Sie selbst sagten, ist vers an dieser Stelle null.

für null Um zu überprüfen, müssen Sie den Operator == verwenden.

if(vers == null) { return;} 
1

Sie können nicht .equals() auf einem Null-Objekt aufrufe.

Um zu überprüfen, ob die vers Variable null ist, Sie richtig verwenden sollten vers == null