我有两个枚举类,比如 Enum1 和 Enum2:
enum Enum1 {ONE, TWO, THREE}
enum Enum2 {FOUR, FIVE}
我有这样的方法:
public <E extends Enum<E>> method (E arg) {
switch (arg) { // Here is the compile error -- Cannot switch
// on a value of type E. Only convertible int
// values, strings or enum variables are permitted
// (And of course, all the cases are incorrect
// because the enum set is unknown)
case ONE:
// do something
case TWO:
// do something
case THREE:
// do something
case FOUR:
// do something
case FIVE:
// do something
default:
// do something
}
}
那么是否可以切换通用枚举类型的值?
有一种方法可以将其更改为字符串(仅适用于 JDK7):
public <E extends Enum<E>> method (E arg) {
switch (arg.name()) {
case "ONE":
// do something
case "TWO":
// do something
case "THREE":
// do something
case "FOUR":
// do something
case "FIVE":
// do something
default:
// do something
}
}