2014-02-20 95 views
-1

看起来好像ActionListener对象是用继承/重写的方法创建的。这个语法有一些特殊的名字吗?奇怪的java构造函数的语法

btnLocationDev.addActionListener(new ActionListener() { 
    public void actionPerformed(ActionEvent e) { 
       ... 
    } 
}); 
+1

谷歌为“匿名类”。 – Pshemo

+1

可能的重复http://stackoverflow.com/questions/355167/how-are-anonymous-inner-classes-used-in-java – Drogba

回答

3

那就是匿名内部类。当创建一个额外的东西(比如重载方法)的对象的实例时,它实际上可以派上用场,而不必实际上为一个类继承子类。我主要在使用它时,我想附上一个列表程序。

当你传统地附加一个列表器,你必须重载每个方法,但是当你使用匿名内部类时,你只需重载你想要的方法。

button.addActionListener(new ActionListener() { 
    public void actionPerformed(ActionEvent e) 
    { 
     // Method to be used. 
    } 
}); 
3

它被称为匿名内部类。你刚刚创建了一个实现了ActionListener的匿名内部类的实例。