如果我有一个类如:
public class Main {
public class CommandLineParser {
public CommandLineParser(String[] args) {
}
}
public static void main(String[] args) {
Main main = new Main();
new CommandLineParser(args); // <<< line in question
}
}
然后我非常合理地收到错误消息:
无法访问类型
Main
的封闭实例。必须使用Main
类型的封闭实例限定分配(例如x.new A()
,其中x
是Main
的实例。
但如果我将班级CommandLineParser
移到另一个档案中,就没有这样的抱怨。
为什么第二种情况没有错误?
(注意:这个问题不是如何在静态方法中实例化非静态内部类。)