无法创建匿名对象

时间:2015-04-18 20:57:50

标签: java

我试过这样做:

ActionListener listener = new ActionListener( {
    public void actionPerformed(ActionEvent e) {        

    }
});

它给我一个编译错误,称为令牌上的语法错误"("和")"。

你可以告诉我哪里出错了吗?我想创建一个实现接口ActionListener的类的匿名对象。

2 个答案:

答案 0 :(得分:2)

您正在使用匿名类的内容作为ActionListener的构造函数的参数。首先关闭括号,然后添加匿名类的主体:

ActionListener listener = new ActionListener() {
    public void actionPerformed(ActionEvent e) {        

    }
};

答案 1 :(得分:2)

您需要移动括号

                                             ↓<<<<<<<+
ActionListener listener = new ActionListener( {      |
    public void actionPerformed(ActionEvent e) {     |  
                                                     |  
    }                                                |
});                                                  |
 ^>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>+

换句话说,您首先需要调用构造函数new ActionListener(),然后添加匿名类{...}的正文

ActionListener listener = new ActionListener() {
    public void actionPerformed(ActionEvent e) {        

    }
};  

您无法将代码块作为参数new ActionListener( {...} )

传递