我想我了解匿名课程的基础知识,但我想澄清一些事情。当我有这样的语法时
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 编译器给出的通用名称。
如果不是,会发生什么?谢谢。