2017-05-12 42 views
1

Javaで内部クラスを作成し、その内部クラスに「オプション」マーカーインターフェイスを実装する必要があります。内部クラスをインスタンス化し、追加のインターフェイスを実装する方法

私ができるようにしたいのは、書き込みです。

final Object obj1 = new Adapter() implements MarkerInterface { 
    @Override 
    public void adapterMethod() { 

    } 
}; 

final Object obj2 = new Adapter() { 
    @Override 
    public void adapterMethod() { 

    } 
}; 

私は上記がコンパイルされないことを認識します。

希望の結果を得るためにはどのような方法がありますか?

+2

マーカーインターフェイスの代わりに注釈を使用することを検討しましたか? – khelwood

+2

@khelwood:この特定のシナリオでは、優れた左フィールドの考えが... –

+1

[ネストされたクラスのチュートリアル](https://docs.oracle.com/javase/tutorial/java/javaOO/nested.html)が問題の解決に役立つかもしれません。 – Roland

答えて

4

は、それが非匿名ください:

private [static] class MyAdapter extends Adapter implements MarkerInterface { 
    ... 
} 

... 

MyAdapter a = new MyAdapter(); 

あなたはあなたのメソッド内でも巣、このクラス宣言は、あなたが本当にしたいことができるかどうか。

+1

* "本当にしたいのなら、このクラス宣言をメソッドの中に入れ子にすることもできます。" *おそらく(全体的に)良いことであることを忘れがちです。 :-)しかし、*時々* 1つは実際にそれを行う必要があるかもしれません... –

+2

はい、私はそれが良い考えだと思った一回覚えていません。 –

+0

私は 'Adapter = new MyAdapter(); 'と考えています。 – toongeorges

関連する問題