4

これを検索しましたが、残念ながら一致するものが見つかりませんでした。これはlocal anonymous inner class次のようなメソッド内にあります:-

new Object(){
    public void open(){
        // do some stuff
    }
    public void dis(){
        // do some stuff
    }
};

2 methodsその中にあり(open,dis)、それらの誰かを使用したい場合は、単に行うことを知っています

new Object(){
    public void open(){
        // do some stuff
    }
    public void dis(){
        // do some stuff
    }
}.open()

今私の質問は、2つのメソッドを同時に呼び出したい場合はどうすればよいですか?

4

3 に答える 3

1

匿名クラスからメソッドを呼び出したい場合、それはスーパークラスを拡張するか、インターフェースを実装することを意味します。したがって、そのインスタンスを親の参照に格納し、すべてのコントラクトのメソッドを呼び出すことができます。

interface MyAnonymous {
   void open();
   void dis();
}

MyAnonymous anon = new MyAnonymous () {
    public void open(){
        // do some stuff
    }
    public void dis(){
        // do some stuff
    }
};

anon.open();
anon.dis();
于 2014-03-04T23:15:45.447 に答える