定义嵌套类时,是否可以访问“外部”类的方法?我知道可以访问它的属性,但我似乎找不到使用它的方法的方法。
addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
if (e.getClickCount() == 2 && //<-- Here I'd like to
} // reference a method
}); //from the class where
//addMouseListener() is defined!
谢谢
最佳答案
由于您的内部类是非静态的,因此外部类的所有方法自动对内部类可见,甚至是私有(private)方法也是如此。
所以,只需继续调用您想要的方法即可。
例如,
class MyClass extends JPanel
{
void doStuff()
{
}
boolean someLogic()
{
return 1>2;
}
void setupUI()
{
addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
if (e.getClickCount() == 2 && someLogic())
doStuff();
}
});
}
}
有关这方面的更多信息,请参阅 Sun Tutorial on Nested Classes .
关于java - 在内部类中使用 "outer"类的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2823707/