如何在不指定类型的情况下引用我的Java Enum?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (22)

我有一个类,定义自己的枚举,像这样:

public class Test
{
    enum MyEnum{E1, E2};

    public static void aTestMethod() {
        Test2(E1);  // << Gives "E1 cannot be resolved" in eclipse.
    }
    public Test2(MyEnum e) {}
}

如果我指定MyEnum.E1,它工作正常,但我真的只想把它作为“E1”。有什么办法我可以做到这一点,还是必须在另一个文件中定义这个工作?

结论:我无法获得正确的导入语法。因为有几个答案表明这是可能的,所以我要选择一个给我我需要的语法并且提升其他语法的答案。

顺便说一句,这是一个真正的奇怪的部分(在我得到静态导入工作之前),我写的使用枚举的switch语句不允许枚举按其类型作为前缀 ——所有其余部分代码需要它。头疼。

提问于
用户回答回答于

实际上,你可以做一个嵌套枚举的静态导入。下面的代码编译得很好:

package mypackage;

import static mypackage.Test.MyEnum.*;

public class Test
{
    enum MyEnum{E1, E2};

    public static void aTestMethod() {
        Test2(E1);  
    }

    public static void Test2(MyEnum e) {}
}
用户回答回答于

可以对嵌套类执行静态导入:

import static apackage.Test.Enum.*;

扫码关注云+社区