我們從java 1.5獲得的枚舉如何與C++和其他傳統枚舉類型不同。Java Enum和C++以及其他傳統的Enum不同,Java Enum如何?
3
A
回答
5
在Java枚舉是複雜的對象,而在C++中,每個枚舉對象都與一個整數值關聯。在java中你可以有一個枚舉值相關的幾個屬性:
enum MyCategory {
SPORT("The sport category", "sport.png"),
NEWS("the news category", "news.jpg");
private String description;
private String iconPath;
private MyCategory(String description, String iconPath) {
this.description = description;
this.iconPath = iconPath;
}
public String getDescription() {
return description;
}
public String getIconPath() {
return iconPath;
}
}
而且在Java中,你可以只switch
數類型,字符串和枚舉。不過,我不能一概而論傳統枚舉作爲一個整體......
編輯一兩件事java的枚舉能做的就是聲明每個值操作(從java tutorial拍攝):
public enum Operation {
PLUS { double eval(double x, double y) { return x + y; } },
MINUS { double eval(double x, double y) { return x - y; } },
TIMES { double eval(double x, double y) { return x * y; } },
DIVIDE { double eval(double x, double y) { return x/y; } };
// Do arithmetic op represented by this constant
abstract double eval(double x, double y);
}
3
的Java編程語言enums
比其他語言中的對應語言要強大得多,而這些語言只是整體的榮耀。新的枚舉聲明定義了一個完整的類(稱爲枚舉類型)。除了解決所有問題(不是類型安全的,沒有命名空間,脆性和打印的值是無信息)與以下int Enum pattern
這是之前Java 5.0中使用的存在:
public static final int SEASON_WINTER = 0;
它也允許你添加任意的枚舉類型的方法和字段,實現任意接口等等。枚舉類型提供了所有Object方法的高質量實現。它們是Comparable
和Serializable
,並且該串行表單設計用於承受枚舉類型的任意更改。
閱讀完整文章Java Enums瞭解更多詳情。
相關問題
- 1. 替代Java Enum
- 2. Enum的Java優勢
- 3. Java的ENUM問題
- 4. 在[C]中將`enum`轉換爲其他`enum`是否有效?
- 5. 帶Java Bean的Java Enum?
- 6. Java Array of Enum(classes)
- 7. Enum和Dictionary <Enum,Action>
- 8. Enum,PList或其他存儲?
- 9. Java Enum的UML表示
- 10. Enum和enum之間的區別
- 11. Mysql空ENUM到postgresql ENUM
- 12. Spring Hibernate和ENUM
- 13. 將Java ENUM轉換爲XML
- 14. Enum無法解析? Java
- 15. 如何訪問ColdFusion中的Java Enum?
- 16. C++「Floating Point Enum」
- 17. 如何將IEnumerable <Enum>轉換爲C#中的Enum?
- 18. C/C++ enum和char *數組
- 19. 用Java Enum模擬C++枚舉整數
- 20. 如何在Maven中編譯Java Enum?
- 21. 如何在Java中擴展Enum?
- 22. 它如何工作enum C#?
- 23. C#Enum in C++ Library
- 24. ValueWhenConverter和Enum
- 25. Swift enum和NSCoding
- 26. Cardgame,Array和Enum
- 27. 如何根據Enum的整數值設置Enum的類型爲Enum
- 28. Enum的和接口
- 29. Enum HWND屬性C++
- 30. C Enum is all Zeroes
你是指在UML中使用「常規枚舉類型」的枚舉? – belgther 2012-02-15 07:53:52
[Wikipedia](http://en.wikipedia.org/wiki/Enumerated_type#C_and_syntactically_similar_languages)上有不同語言的ENUM類型的很好的描述。 – 2012-02-15 07:57:43