import java.util.*;
public enum Skills {
Random r= new Random();
//trying to use nextInt method in some case
SKILLS(r.nextInt(125)+25),
VEHICLE(r.nextInt(125)+25),
ACCURACY(),WEAPONS(23),REFLEX(),
STRATEGY(),CHARISMA(),
HACKING(r.nextInt(125)+25),
SPEED(r.nextInt(125)+25),
STEALTH(r.nextInt(125)+25);
//end of skills
private int value;
private Skills(int value){
this.value=value;
}
public int getValue() {
return value;
}
}
我无法将我的枚举值设置为随机。之后我会将这些技能提供给我游戏中的角色。我也不能使用nextInt方法。这是为什么 ?如何解决问题并正确使用这个枚举?
答案 0 :(得分:0)
使用enum
来实现这一点并不合理。请记住,enum
常量是单例:所有字符将共享每个技能对象的相同单个副本,因此所有字符将具有相同的技能编号。这可能不是你想要的。
仅使用带字段的类更有意义:
public class Skills {
private int vehicleSkill;
private int hackingSkill;
// etc.
public Skills(Random r) {
this.vehicleSkill = r.nextInt(125)+25;
this.hackingSkill = r.nextInt(125)+25;
// etc.
}
public int getVehicleSkill() {
return vehicleSkill;
}
public int getHackingSkill() {
return hackingSkill;
}
// etc.
}
这样你就可以为每个角色创建一个单独的Skills
对象。