2012-12-06 29 views
10

次のコードは、コンパイル時にエラーを返します。戻り値が見つからず、return文が見つからない場合、返す値はどれですか?Void TypeVoidメソッドの戻り値がありませんか?

final SwingWorker<Void, Void> worker = new SwingWorker<Void, Void>() 
{ 
    @Override 
    protected Void doInBackground() throws Exception 
    { 
     // some code 
     if (something) 
     { 
      return; 
     } 
    } 
} 
+0

あなたのボイドは大文字です。 –

+2

戻り値nullを使用します。 http://stackoverflow.com/questions/643906/uses-for-the-java-void-reference-type – jontro

+0

ジェネリックスのために小文字で無効にすることはできません – HericDenis

答えて

23

Voidあなたが何かを返すようにしたくない場合は種類を無効に変更し、voidではありません。

ボイドはクラスであり、ボイドは型です。

/** 
* The {@code Void} class is an uninstantiable placeholder class to hold a 
* reference to the {@code Class} object representing the Java keyword 
* void. 
* 
* @author unascribed 
* @since JDK1.1 
*/ 

あなたがVoidをしたい場合は、最後にreturnステートメントを追加する必要があります。

例:

protected Void doInBackground() throws Exception 
    { 
     // some code 
     if (something) 
     { 
      return null; 
     } 
     return null; 
    } 
+0

ありがとう、それは私が思ったものですが、それはいくつかのNullPointerExceptionまたは何かを与えるつもりはなかった。ありがとう – HericDenis

+0

@HericDenis:私はそれが失敗するとは思わない。このディスカッションを参照してくださいhttp://stackoverflow.com/questions/4261666/how-do-i-wait-for-a-swingworkers-doinbackground-method – kosa

+0

最初の返信文の後にヌルがありません – HericDenis

1

はこれを確認してください。それは単純なボイドではなく、キャプションVのボイドを返します。

final SwingWorker<Void, Void> worker = new SwingWorker<Void, Void>() 
      { 
       @Override 
       protected Void doInBackground() throws Exception 
       { 
       // my code here 
        return null; 
       } 
      }; 
} 
関連する問題