我有一个类定义自己的枚举像这样:
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) {}
}