java - 内部类中的构造函数(实现接口(interface))

标签 java constructor inner-classes anonymous-inner-class

我将如何为实现接口(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/

相关文章:

java - 如果您在另一个类(class)中,如何访问对象的某个元素?

java - 实例化内部类

java - 如何使用字符串中给出的数字来计算绝对值?

java.lang.IllegalArgumentException : Illegal character(s) in message header field: Authorization: Basic

java - 如何在方法调用中实例化一个新 bean?

C++ 在该类的函数中使用该类的对象

Java: RandomStringUtils 随机种子

python - python中的构造函数链接

c++ - 使用 () 创建类的实例

共同 friend 类的 C# 解决方法