如何访问由外部类的成员隐藏的嵌套类的成员

时间:2012-05-28 10:22:17

标签: 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
    }
}

在上面的示例中,Inner内部Outer含糊不清。 Outer.Inner既可以是嵌套类,也可以是静态成员。似乎javac和Eclipse编译器都无法取消引用Outer.Inner.Help。我如何访问Help

请记住,上面的代码是生成的,因此重命名事物不是(简单)选项。

2 个答案:

答案 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);
}