我用2个值(项目ID,项目exp)
创建了一个枚举如何从枚举中提取exp值?
这是enum;
public enum boneData {
NORMAL_BONE(526, 5),
BIG_BONE(532, 15),
BABYDRAGON_BONE(534, 30),
DRAGON_BONE(536, 72),
DAGGONOTH_BONE(6729, 125);
private int boneId;
public double boneExp;
boneData(int boneId, int boneExp) {
this.boneId = boneId;
this.boneExp = boneExp;
}
public int boneId() {
return boneId();
}
public int boneExp() {
return boneExp();
}
}
这是数组的方法;
public int getExp(int id) {
for (int j = 0; j < bonesExp.length; j++) {
if (bonesExp[j][0] == id)
return bonesExp[j][1];
}
return 0;
}
如何将其转换为枚举,谢谢!
答案 0 :(得分:1)
只需在您感兴趣的枚举对象上调用boneExp()
方法即可。那就是它。
if (bonesExp.getId() == id)
return bonesExp.boneExp();
}
要搜索整个枚举集合,请使用其values()
方法返回所有枚举项的数组:
for (boneData myBone : boneData.values()) {
if (myBone.getId() == id)
return myBone.boneExp();
}
}
请注意,类之类的枚举名称应以大写字母开头。那么更好:
public enum BoneData {
// ... etc
}
和搜索:
public int getExp(int id) {
for (BoneData myBone : BboneData.values()) {
if (myBone.getId() == id)
return myBone.boneExp();
}
}
// either return a default value or throw exception here
}
答案 1 :(得分:0)
为什么不仔细看看你的数组方法
" for (int j = 0; j < bonesExp.length; j++) "
您的声明中没有找到的地方&#34; bonesExp&#34;而我注意到#34; boneExp&#34; 因此,即使您在尝试调用bonesExp()而不是boneExp()时也会出现错误。