Java / 基礎 / Interface / new する

Java / 基礎 / Interface / new する

インタフェースは直接的な 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");
    }
});
java/basic/interface/new.txt · 最終更新: 2020-10-07 11:56 by ore