有没有办法在Java中初始化匿名内部类?
例如:
new AbstractAction() {
actionPerformed(ActionEvent event) {
...
}
}
有没有办法在类声明的某个地方使用例如putValue方法?
有没有办法在Java中初始化匿名内部类?
例如:
new AbstractAction() {
actionPerformed(ActionEvent event) {
...
}
}
有没有办法在类声明的某个地方使用例如putValue方法?
使用初始化块:
new AbstractAction() {
{
// do stuff here
}
public void actionPerformed(ActionEvent event) {
...
}
}
通常情况下,你会在构造函数中放置初始化实例变量的代码。有两种替代方法可以用来初始化实例变量:初始化块和final方法。实例变量的初始化块看起来就像静态初始化块,但没有static关键字:
{
// whatever code is needed for initialization goes here
}
Java编译器会将初始化块复制到每个构造函数中,因此这种方法可用于在多个构造函数之间共享代码块。
来源:
不太清楚您的意思,但您可以使用一个 初始化块 在构造时执行代码:
new AbstractAction() {
{
// This code is called on construction
}
@Override public void actionPerformed(ActionEvent event) {
...
}
}
new AbstractAction() {
{
//initialization code goes here
}
actionPerformed(ActionEvent event) {
...
}
}
new
时,你已经在初始化了。 - bluefoot