Luk*_*der 6 java inner-classes ambiguous
我有一个源代码生成器,有可能生成以下类型的代码(只是一个例子):
public class Outer {
public static final Object Inner = new Object();
public static class Inner {
public static final Object Help = new Object();
}
public static void main(String[] args) {
System.out.println(Outer.Inner.Help);
// ^^^^ Cannot access Help
}
}
Run Code Online (Sandbox Code Playgroud)
在上面的例子中,Inner
内部含糊不清Outer
.Outer.Inner
既可以是嵌套类,也可以是静态成员.似乎两个javac
和Eclipse编译器都不能解除引用Outer.Inner.Help
.我怎样才能访问Help
?
请记住,上面的代码是生成的,因此重命名事物不是(简单)选项.
以下对我有用(带有关于以非静态方式访问静态成员的警告):
public static void main(String[] args) {
System.out.println(((Inner)null).Help);
}
Run Code Online (Sandbox Code Playgroud)