如何在不指定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类必须在包中定义为可导入的。
使用Test
( IT WORKS )中定义的包:
package mypackage;
您可以使用:
import static mypackage.Test.MyEnum.*;
没有定义包,你不能使用( 不工作 ):
import static Test.MyEnum.*;