2017-04-01 9 views
0
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; 
} 
} 

私のenumの値をランダムに設定することはできません。後で私はゲームでキャラクターにこれらの技能を与えます。 nextIntメソッドも使用できません。何故ですか ?どのように問題を解決し、この列挙を正しく使用するのですか?Javaでenum値をrandomに設定する

+0

enumについて読んで例を見て、戻ってこの同じ質問をしてください。 – Tarik

答えて

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オブジェクトを作成することができますこの方法を。

+0

ありがとう、たくさん助けて、その後、私は人のクラスの属性の値としてこれらを付けています。このように:this.hacking = Skills.hackigSkill; ?? – Viktor

関連する問題