我有一个源代码生成器,有可能生成以下类型的代码(仅作为示例):
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
}
}
在上面的示例中,Inner
内部Outer
含糊不清。 Outer.Inner
既可以是嵌套类,也可以是静态成员。似乎javac
和Eclipse编译器都无法取消引用Outer.Inner.Help
。我如何访问Help
?
请记住,上面的代码是生成的,因此重命名事物不是(简单)选项。
答案 0 :(得分:6)
以下对我有用(带有关于以非静态方式访问静态成员的警告):
public static void main(String[] args) {
System.out.println(((Inner)null).Help);
}
答案 1 :(得分:1)
怎么样
public static void main(String[] args) {
System.out.println(new Inner().Help);
}