menu
書いてる野郎
orebike@gmail.com
インタフェースは直接的な new はできないのだが、実装を無名クラスとして実体化することができる
このようなメソッドが有った場合
public void hoge(IPiyo p){ p.dododo(); }
この実行時にこのように、その場で実装を書ける
a.hoge(new IPiyo(){ public void dododo(){ System.out.println("abc"); } });
これは記述全体がコンストラクタになってしまうため、コンストラクタが書けないのだが、 使う状況がどのような場合になるかよくわからないが、このようにインスタンスイニシャライザを使うと前処理が書ける
a.hoge(new IPiyo(){ { System.out.println("i n i t"); } public void dododo(){ System.out.println("abc"); } });