2012-05-06 9 views
25

中括弧は何をしていますか?「新しい」表現の中括弧は? (例えば、 "new MyClass(){...}")

handler1 = new Handler() { 

     public void handleMessage() { 

     } 
}; 

object = new Class_Name() {};? この構文はAndroidまたはJavaにのみ存在しますか? Javaで何が呼び出されていますか?あなたのお手伝いをありがとう。

+0

重複/関連質問:[ "新しいテスト(の違い)と新しいテスト(){}"](http://stackoverflow.com/q/22164036/320399) – blong

答えて

22

Handlerを拡張するanonymous classのインスタンスを作成するための構文です。これはJavaの一部です。

+0

ありがとうございました。私はこれのために多くの時間を失った:((。 – wanting252

2

これは、インターフェイスのインスタンス参照を作成するときに発生します。 たとえば、クラスにRunnableというインターフェースのインスタンスを作成したいのですが、そのために匿名クラスを作成して作成し、インターフェースのrun()メソッドをオーバーライドすることができます。以下に述べる以外の別の例を見ることで、よく理解できます。

Runnable runnable = new Runnable() { 

    public void run() { 
     // TODO Auto-generated method stub 

    } 
}; 
関連する問題