我将如何为实现接口(interface)的内部类编写构造函数?我知道我可以开设一个全新的类(class),但我认为必须有一种方法可以做到这一点:
JButton b = new JButton(new AbstractAction() {
public AbstractAction() {
super("This is a button");
}
public void actionPerformed(ActionEvent e) {
System.out.println("button clicked");
}
});
当我输入它时,它不会将 AbstractAction 方法识别为构造函数(编译器要求返回类型)。有人有想法吗?
最佳答案
只需在扩展类名后插入参数即可:
JButton b = new JButton(new AbstractAction("This is a button") {
public void actionPerformed(ActionEvent e) {
System.out.println("button clicked");
}
});
另外,您可以使用初始化 block :
JButton b = new JButton(new AbstractAction() {
{
// Write initialization code here (as if it is inside a no-arg constructor)
setLabel("This is a button")
}
public void actionPerformed(ActionEvent e) {
System.out.println("button clicked");
}
});
关于java - 内部类中的构造函数(实现接口(interface)),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3045130/