java返回枚举值,但类位于类的数组中
我得到了一个等级,我需要返回一个等级数组,里面包含枚举的所有值,我无法实现这一点
public class Rating implements java.io.Serializable {
/**
*
*/
private static Rating [] rates;
private enum Rates{
Very_Bad,
Bad,
Mediocre,
Good,
Very_Good,
Excellent;
}
public static Rating[] values() {
// TODO Auto-generated method stub
rates = new Rating[Rates.values().length];
rates[0] = Rates.Very_Bad; //Type mismatch: cannot convert from Rating.Rates to Rating
rates[1] = Rates.Bad; //Type mismatch: cannot convert from Rating.Rates to Rating
rates[2] = Rates.Mediocre; //Type mismatch: cannot convert from Rating.Rates to Rating
rates[3] = Rates.Good; // Type mismatch: cannot convert from Rating.Rates to Rating
rates[4] = Rates.Excellent; //Type mismatch: cannot convert from Rating.Rates to Rating
rates[5] = Rates.Excellent; //Type mismatch: cannot convert from Rating.Rates to Rating
return rates;
}
}
# 1 楼答案
看看这个方法:
这将允许值与枚举键之间的映射
这也适用于其他
value
类型或者你可以更进一步,使用工厂设计模式来解决这个问题
# 2 楼答案
除了
Rating
作为枚举之外,我看不出有任何其他方式能让这一切变得有意义:由于枚举的成员是常量的一种,所以它们通常用所有的大写字母表示
这样,你教授的代码就有意义了:
这将是枚举中的最后一个值。(该
values
-方法是Enum固有的,无需创建。)编辑: