編集:@オスカー・ロペス
ご指定のコードを追加したところ、次のようになりました: import java.util.HashMap; java.util.Map をインポートします。
public class Character{
public String name;
private HashMap<String, String> stats;
public Character(String charName){
name = charName;
stats.put("Strength", "5");
stats.put("Dexterity", "5");
stats.put("Constitution", "5");
stats.put("Intelligence", "5");
stats.put("Strength", "5");
stats.put("Wisdom", "5");
}
public String getStat(String name) {
return stats.get(name);
}
public static void main(String[] arguments){
Character tanis = new Character("Tanis");
System.out.println(tanis.getStat("Dexterity"));
}
}
そして、それは正しくコンパイルされているようですがstats.put
、ハッシュマップに何かを入れようとしている方法が好きではありません。これを行うにはどうすればよいですか?
import java.util.HashMap;
public class Character{
public String name;
private static HashMap<String, String> stats;
public Character(String charName){
name = charName;
stats = new HashMap<String, String>();
stats.put("Strength", "5");
stats.put("Dexterity", "5");
stats.put("Constitution", "5");
stats.put("Intelligence", "5");
stats.put("Strength", "5");
stats.put("Wisdom", "5");
}
public String getStat(String statName) {
return stats.get(statName);
}
public static void changeStat(Character character, String statName, String newStatValue) {
character.stats.put(statName, newStatValue);
}
public static void main(String[] arguments){
Character tanis = new Character("Tanis");
System.out.println(tanis.getStat("Dexterity"));
Character xander = new Character("Xander");
changeStat(xander, "Dexterity", "7");
System.out.println(xander.getStat("Dexterity"));
System.out.println(tanis.getStat("Dexterity"));
}
}
//Prints out
//5
//7
//7
tanis.getStat が 7 に変わるのはなぜですか?