noo*_*REF 5 java event-handling anonymous-class actionlistener implements
我正在尝试自学Java并且有一个我到目前为止无法回答的问题.在我的一些在线阅读中,我发现了两种使用动作监听器的方法,它们似乎做同样的事情.但我试图找出一个优于另一个的优势/劣势.
使用这样的匿名类是否更好:
public MyClass() {
...
myButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
//doSomething
}
});
...
}
Run Code Online (Sandbox Code Playgroud)
或者最好是在类的开头实现,如下所示:
public MyClass() implements ActionListener {
...
myButton.addActionListener(this);
public void actionPerformed(ActionEvent e) {
//doSomething
}
...
}
Run Code Online (Sandbox Code Playgroud)
这实际上归结为一种风格。两者在代码中的执行方式完全相同。
单独的类往往会使实际方法中的代码更简单,而匿名内部类则在方法中引入侦听器实现的代码,这可以使其更清楚地了解它正在做什么。
还有一种情况是,匿名内部类可以在创建它们的方法中访问最终变量。您不能使用预先编写的类来做到这一点(尽管您可以将变量传递到控制器中)。
单独的代码是可重复使用的 - 因此,如果您在多个位置有相同的侦听器,那么它显然是赢家。
| 归档时间: |
|
| 查看次数: |
2367 次 |
| 最近记录: |