我们从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