我有一个类,它定义自己的枚举,如下所示:
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语句使用了enum,它不允许enum以其类型作为前缀——所有其他代码都需要它。伤了我的头。
3条答案
按热度按时间fhity93d1#
可以对嵌套类执行静态导入:
zfycwa2u2#
测试类必须在可导入的包中定义。
中定义了包
Test
(有效):您可以使用:
如果未定义包,则无法使用(不起作用):
0s7z1bwu3#
实际上,可以对嵌套枚举进行静态导入。下面的代码编译得很好: