java - 在内部类中使用 "outer"类的方法

标签 java

定义嵌套类时,是否可以访问“外部”类的方法?我知道可以访问它的属性,但我似乎找不到使用它的方法的方法。

    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/

相关文章:

Java 使用 Stream 初始化对象并设置属性

java - java中中断的具体用法是什么?

java - Single.retry(3) 仅调用一次

java - 使用 pdfbox 添加超链接到 pdf 文件

java - 使用 hibernate 序列中的主键

java - 如何将文件写入 Android 中的外部公共(public)存储,以便它们在 Windows 中可见?

新终端ubuntu中的java程序

java - 我可以合并两个数组并且仍然知道每个元素的来源吗?

java - 多次保存同一对象

java - 从谷歌照片中选择照片会破坏我的应用程序