我有一個私有枚舉,不會暴露在類之外。無論如何,我可以做這種類型的靜態導入,所以我不必每次都鍵入枚舉類型?還是有更好的方法來寫這個?例如:我可以做一個私人子類的靜態導入嗎?
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