2

如何调用 methodTwo(); 来自方法一();?

class Name {
    void methodOne() {
        class InnerClass {
           void methodTwo() {
           }
         }
     }
 }

谢谢你!

4

3 回答 3

6

您需要创建 的实例,InnerClass就像任何其他实例方法都需要一个实例来调用它一样:

class Name {
   void methodOne() {
     class InnerClass {
       void methodTwo() {
       }
     }

     InnerClass x = new InnerClass();
     x.methodTwo();
   }
}

这样做之前值得小心——我认为我从未见过在我与之关联的生产代码的方法中声明的命名类。通常我会使用匿名内部类来做一些非常短的事情,或者使用私有静态命名类来做更长的事情,以避免使方法太长。

于 2012-07-06T11:51:22.083 回答
0
class Name {
    void methodOne() {
        class InnerClass {
           void methodTwo() {
               new InnerClass().methodTwo();
           }
        }
    }
}
于 2012-07-06T11:53:39.603 回答
-2

非静态嵌套类与包含类绑定,但它可以是嵌套类的多个实例和一个包含实例。因此,您需要指定要对其运行方法的实例名称。

于 2012-07-06T11:55:04.627 回答