Anonymous クラスの基本は理解していると思いますが、明確にしたいことがあります。このような構文がある場合
class A
{
class AnonymousClass1 Implements ActionListener{}
}
class A
{
public A()
{
JButton btn = new JButton();
btn.addActionListener( new ActionListener(){} );
}
}
最初の例のように、匿名クラスが実際にクラス A の内部クラスである場合: 理論的には、セマンティクスは正しいでしょうか?
正確にはどうなりますか?Javaファイルがコンパイルされると、匿名クラス用に.classファイルが作成されるため、参照できると思います(しかし、見つかりませんでした)。A のオブジェクトがインスタンス化されると、ボタン オブジェクトが作成され、btn は addActionListener() メソッドを呼び出します。このメソッドは、このbtn.addActionListener(new AnonymousClassOne())
AnonymousClassOne のようなものをコンパイラによって与えられた一般的な名前に実際に渡します。
そうでない場合はどうなりますか?ありがとう。