21

次のコードを検討してください。

public static void main(String[] args) {
    File file = new File("C:\\someFile.txt") {
        public void doStuff() {
            // Do some stuff
        }   
    };

    file.doStuff(); // "Cannot resolve method"
}

新しく定義したメソッドを呼び出そうとしてもdoStuff()、それは不可能です。これは、 が新しい匿名の子クラスのインスタンスとしてではなくfile、型のオブジェクトとして宣言されているためです。File

だから、私の質問は、この動作を達成するための「良い」方法はありますか? 明らかなこと以外(つまり、クラスを適切に宣言するだけです)。

4

4 に答える 4