在 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
仅数字类型、字符串和枚举。但是我不能将传统枚举概括为一个整体......
EDITjava 枚举可以做的另一件事是声明每个值操作(取自java教程 http://docs.oracle.com/javase/1.5.0/docs/guide/language/enums.html):
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);
}