Java 简单变量引用

Java 简单变量引用,java,enums,java.util.scanner,Java,Enums,Java.util.scanner,所以我现在正在尝试制作一个简单的rpg游戏,这是我第一次,所以我在学习哈哈,但我的问题是,我试图引用另一个类中的变量,供玩家选择他们的类。另外,我不知道要查找什么,所以如果这是一个重复的问题,我很抱歉 这是主要原因 public static void main(String[] args) { Scanner inputRace = new Scanner(System.in); player player1 = new player(race.valueOf(inputRa

所以我现在正在尝试制作一个简单的rpg游戏,这是我第一次,所以我在学习哈哈,但我的问题是,我试图引用另一个类中的变量,供玩家选择他们的类。另外,我不知道要查找什么,所以如果这是一个重复的问题,我很抱歉

这是主要原因

public static void main(String[] args) {
    Scanner inputRace =  new Scanner(System.in);
    player player1 = new player(race.valueOf(inputRace), profession.ranger);
}
这是我想参考的
种族
课程

public enum race {
    orc, elf, human, dwarf
}

所以我所要做的就是能够接受用户的输入,像种族一样去做(“不管他们选择什么”),但我一直没能弄明白。感谢您的帮助,如果有问题,请原谅。

如果我理解正确,您需要获得
race.orc
,如果用户输入
orc
,从今往后

您的思路是正确的,只需输入用户的字符串,如

String s = inputRace.next();
player player1 = new player(race.valueOf(s), profession.ranger);

在其他情况下,要访问输入数据,您必须使用诸如next、nextInt、nextDouble等扫描方法。
在您的例子中,您正在查找字符串,因此它应该如下所示:

try {
    Race race = Race.valueOf( inputRace.next() ); // next returns string
    Player player1 = new Player(race, profession.ranger);
} catch ( IllegalArgumentException ex ) {
    System.err.println( "That race doesn't exsist" );
}
请注意,我使用大写字母表示种族和玩家,这是命名类的标准方式


此外,您还应该将代码放入某种循环中,直到他没有编写正确的race。

String raceString=inputRace.nextLine()
然后将race.valueOf(inputRace)改为race.valueOf(raceString):这里有无数的问题和教程解释如何使用扫描仪和枚举。谢谢ishnark!还有幽灵猫,我正试图找到它哈哈。。。。我主要是在使用race类的变量时遇到了问题非常感谢你对它的解释如此之好,我真的很难思考搜索什么来找到像我一样的其他问题,更感谢你多走了一英里,还向我展示了如何捕捉异常!