如果存在同名的内部枚举,如何访问枚举



无法访问在Test类之外定义的enum中的值。

如何访问像Reddel,Jonathan,Goldendel等枚举常量

enum Apple{
    Reddel,Jonathan,Goldendel,Winesap,Cortland;
}

public class Test{
    enum Apple{
        Seb,Majj,Dlred,Wipe,Cland;
    }
    public static void main(String s[]){
        //here I want to access enumeration constant from Apple outside Test.
        //Apple.Winesap
        //Apple.Goldendel
        System.out.println(Apple.Winesap);
    }
}

如果你在一个包中有你的类,说

package pkg;

则使用pkg.Apple.Winesap将工作。(另一个Apple的全限定名为pkg.Test.Apple)

您还可以从pkg.Apple静态导入成员:

import static pkg.Apple.*;

,然后使用Winesap

如果你使用的是默认包(没有包声明),那么内部的Apple会遮蔽其他的Apple,你就不走运了。(静态导入也是如此;不能从默认包中的类中静态导入成员)

相关问题:

  • Java内部类遮蔽外部类
  • 与其他顶层类同名的Java内部类

应附加包名

您需要指定完整的包路径。下面我测试的代码正在编译:

package com.my.test;
enum Apple{
    Reddel,Jonathan,Goldendel,Winesap,Cortland;
}
public class Test{
    enum Apple{
        Seb,Majj,Dlred,Wipe,Cland;
    }
    public static void main(String s[]){
        //here I want to access enumeration constant from Apple outside Test.
        //Apple.Winesap
        //Apple.Goldendel
        System.out.println(com.my.test.Apple.Winesap);
        }
    }

枚举在某处声明,想象在ClassName.java中。您可以使用ClassName.Apple.ReddelTest.Apple.Seb分别引用它们

相关内容

  • 没有找到相关文章

最新更新