如何在Java中初始化匿名内部类

有没有办法在Java中初始化匿名内部类?

例如:

new AbstractAction() { actionPerformed(ActionEvent event) { ... } } 

有没有办法在类声明中的某处使用putValue方法?

使用初始化程序块:

 new AbstractAction() { { // do stuff here } public void actionPerformed(ActionEvent event) { ... } } 

初始化实例成员

通常,您可以使用代码在构造函数中初始化实例变量。 使用构造函数初始化实例变量有两种选择:初始化块和最终方法。 实例变量的初始化程序块看起来就像静态初始化程序块,但没有静态关键字:

 { // whatever code is needed for initialization goes here } 

Java编译器将初始化程序块复制到每个构造函数中。 因此,该方法可用于在多个构造函数之间共享代码块。

资源:

  • Java教程>初始化字段

目前还不是很清楚你的意思,但你可以使用初始化程序块在构建时执行代码:

 new AbstractAction() { { // This code is called on construction } @Override public void actionPerformed(ActionEvent event) { ... } } 

您可以使用实例初始化部分:

 new AbstractAction() { { //initialization code goes here } actionPerformed(ActionEvent event) { ... } } 

或者您可以从内部类中访问外部类的变量。

http://en.wikibooks.org/wiki/Java_Programming/Nested_Classes#Anonymous_Classes