作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在开发我的第一个java程序(所以这个问题相对简单)。我开发了某种基本的角色扮演游戏,研究角色的属性。
我的问题是:
enum ClassStats {
Fighter(15,14,12,10,9,10), Rogue(12,12,16,14,10,10), Mage(10,10,14,16,14,10), Cleric(12,14,12,13,16,14);
private int strength, constitution, dexterity, intelligence, wisdom, charisma;
ClassStats(int str, int con, int dex, int intel, int wis, int cha){
strength = str;
constitution = con;
dexterity = dex;
intelligence = intel;
wisdom = wis;
charisma = cha;
}
int getStrength(){
return strength;
}
int getConstitution(){
return constitution;
}
int getDexterity(){
return dexterity;
}
int getIntelligence(){
return getIntelligence();
}
int getWisdom(){
return wisdom;
}
int getCharisma(){
return charisma;
}
}
public class Character {
private String Name;
private String Class;
private int Level;
private long XP;
private int HP;
private int currentHp;
/*private int BAB; /*Base attack bonus*/
private int Strength;
private int Constitution;
private int Dexterity;
private int Intelligence;
private int Wisdom;
private int Charisma;
Character(String name, String chracterClass){
Name = name;
Class = chracterClass;
Level = 1;
XP = 0;
HP = CharacterUtil.setHP(chracterClass);
currentHp = HP;
ClassStats cs = null;
Strength = cs.getStrength();
System.out.println("Strength: " + Strength);
Constitution = cs.getConstitution();
Dexterity = cs.getDexterity();
Intelligence = cs.getIntelligence();
Wisdom = cs.getWisdom();
Charisma = cs.getCharisma();
}
}
最佳答案
A) 您可以将枚举传递到构造函数中。
B) 或者,您可以通过 enumClass.valueOf(strValue)
从字符串值获取枚举。
C) 或者,更好的是,您可以有一个工厂类来为您生成不同的默认字符。
此外,这两行没有意义:
ClassStats cs = null;
Strength = cs.getStrength();
如果将其设置为 null,则无法调用该对象的方法。这本质上是您可以从构造函数中传递的字符串表示形式解析枚举的地方,或者如果您选择选项 2,您将已经有一个 ClassStats 变量。
关于Java 从枚举中检索数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33302041/
我是一名优秀的程序员,十分优秀!