如何在不指定types的情况下引用我的Java Enum

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

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”。 任何想法我可以做到这一点,还是必须在另一个文件中定义这个工作?

结论:我一直无法得到正确的导入语法。 由于几个答案build议这是可能的,我会select给我我需要的语法,并upvote其他人。

顺便说一句,这是一个真正的奇怪的一部分(之前,我得到了静态导入工作),我写了一个开关语句使用枚举不允许枚举types的前缀 – 所有其余的代码需要它。 伤了我的脑袋。

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

 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.*; 

testing类必须在包中定义为可导入的。

使用TestIT WORKS )中定义的包:

 package mypackage; 

您可以使用:

 import static mypackage.Test.MyEnum.*; 

没有定义包,你不能使用( 不工作 ):

 import static Test.MyEnum.*;