2017-06-04 14 views
-2

私はminecraft(ファイルの作成、ファイルのダウンロード、並べ替えファイルなど)のための個人用のmodloaderをコーディングしたいと、最初に作成されるウィンドウはバージョンを尋ねるJOptionPaneです長い、私はスピナーを使用していない、ちょうどバージョンを求める "msgダイアログ")。コードは次のとおりです。NullPointerExceptionが指定されているにもかかわらず

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(); 
     } 
    } 
} 

あなただけの「OK」を押すと、入力が「ヌル」に等しくなります

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

をしかし、それは方法を終了ドント、それはNullPointerExceptionが言います。なぜそれはちょうど方法を終了しないのですか?

+0

完全なスタックトレースを含めてください。 – Vaiden

答えて

1

を使用する必要があります。ここで :

(vers.equals(ヌル)){

は、あなたがnullの変数にメソッドを呼び出そうとしている場合。あなたが言ったように、この時点では、versはnullです。

nullをチェックするには、==演算子を使用する必要があります。

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

nullオブジェクトに対して.equals()を呼び出すことはできません。

vers変数がnullであるかどうかを確認するには、あなたはそれはあなたがここに例外を取得していることが正しいのですvers == null

関連する問題