我有一个私有枚举,不会暴露在类之外。无论如何,我可以做这种类型的静态导入,所以我不必每次都键入枚举类型?还是有更好的方法来写这个?例如:我可以做一个私人子类的静态导入吗?
package kip.test;
import static kip.test.Test.MyEnum.*; //compile error
public class Test
{
private static enum MyEnum { DOG, CAT }
public static void main (String [] args)
{
MyEnum dog = MyEnum.DOG; //this works but I don't want to type "MyEnum"
MyEnum cat = CAT; //compile error, but this is what I want to do
}
}
不,enum提供了其他形式的安全性,而不仅仅是封装 - 例如,您可以在switch语句中使用它们,并且如果省略,则可以得到警告。只要坚持使用限定符 - 在java中有更糟糕的详细问题;) – Chii 2010-01-12 12:06:20
@akf:Chii的权利,在我的实际代码中,枚举具有超出静态常量平凡的行为。我只是简化了所有这些问题,所以这只是最低限度的例子。我想我只是长期限定符名称(比我的实际代码中的“MyEnum”长得多,不幸...) – Kip 2010-01-12 14:41:17
@Kip:在这种情况下,你为什么接受这个答案? – Thilo 2010-01-13 00:43:26