简体   繁体   English

内部私人阶级和公共方法

[英]Inner private class and public method

If I have something like this: 如果我有这样的事情:

public class Outer {

    private class Inner {
        public void someMethod() {}
    }

    Inner in = new Inner();
    in.someMethod(); //What??
}

Why doesn't last line code work? 为什么最后一行代码不起作用?

Why doesn't last line code work? 为什么最后一行代码不起作用?

Because it has to be wrapped within a block ( initializer , constructor , method ). 因为它必须包装在一个块中( 初始化器构造函数方法 )。

For example (wrapper within a constructor): 例如(构造函数中的包装器):

public class Outer {

    private class Inner {
        public void someMethod() {}
    }

    public Outer() {
        Inner in = new Inner();
        in.someMethod();
    }

}

You just cant invoke any method directly from class body. 您不能直接从类主体中调用任何方法。 It has to be a method or constructor or initilizer block 它必须是方法或构造函数或初始化程序块

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM