如果有一個枚舉,的Java:類等效枚舉
public enum Animal {
DOG,
CAT;
}
如果我理解正確枚舉,我們可以把他們在等價類,像 -
public class Animal {
private static final DOG = 1;
private static final CAT = 2;
}
是這是正確的表示,還是我在這裏錯過了什麼?
謝謝。
如果有一個枚舉,的Java:類等效枚舉
public enum Animal {
DOG,
CAT;
}
如果我理解正確枚舉,我們可以把他們在等價類,像 -
public class Animal {
private static final DOG = 1;
private static final CAT = 2;
}
是這是正確的表示,還是我在這裏錯過了什麼?
謝謝。
不,您的代碼顯示了在Java 1.5中添加enum
之前如何組織物品。
public
而不是private
,因爲您希望使它們在任何地方均可訪問。TimeUnit.SECONDS.toMinutes(120);
這些實例的一些方法,你就如SECONDS
調用toMinutes
)所以,你的代碼看起來更像
public class Animal extends Enum<Animal>{
public static final Animal DOG = new Animal();
public static final Animal CAT = new Animal();
//rest of code added by compiler, like
// - making constructor private
// - handling `ordinal()`
// - adding `valueOf(String) ` and `values()` methods
}
不完全。這裏是如何將看起來像:
public class Animal extends Enum<Enum<Animal>> {
public static final DOG = new Animal("DOG", 0);
public static final CAT = new Animal("CAT", 1);
private static final Animal[] values = new Animal[] {DOG, CAT};
private Animal(String name, int ordinal) {super(name, ordinal);}
public static Animal valueOf(String name) {return Enum.valueOf(Animal.class, name)}
public Animal[] values() {return values;}
}
類java.lang.Enum
持有ordinal
和name
,並提供可以訪問它們的方法。
不,這不是實際的代表! [檢查此文件](http://docs.oracle.com/javase/8/docs/technotes/guides/language/enums.html) – 2015-03-19 08:11:05
@NaveenRamawat,不是,請查看Pshemo答案! – 2015-03-19 08:12:54