2017-06-03 47 views
-2

所以我目前正在尝试做一个简单的RPG游戏,这是我第一次,所以我正在学习哈哈,但我的问题是,我想引用另一个类中的变量,我为玩家选择他们的班级。附:我无法弄清楚要查找什么,所以如果这是一个重复的问题,我很抱歉。简单的可变参考

这是主要的

public static void main(String[] args) { 
    Scanner inputRace = new Scanner(System.in); 
    player player1 = new player(race.valueOf(inputRace), profession.ranger); 
} 

这里是race类我想引用

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

因此,所有我想要做的是能够利用用户的输入并且喜欢比赛(“无论他们的选择是什么”),但我一直无法弄清楚。感谢您的任何帮助,并感到抱歉,如果它很混乱。

+3

'String raceString = inputRace.nextLine();'然后将race.valueOf(inputRace)更改为race.valueOf(raceString) – Ishnark

+2

严重:有大量的问题和教程解释了如何使用扫描器和枚举。 – GhostCat

+0

谢谢ishnark!和ghostcat,我试图找到它哈哈....我主要有问题使用该变量的种族类 – Inertialilty

回答

0

在其他访问输入数据,必须使用扫描仪的方法,如未来,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"); 
} 

请注意,我用大写的比赛和球员,这是命名你的类标准的方式。

你也应该把你的代码放在某种循环中,直到他没有写出正确的比赛。

+0

非常感谢解释如此之好,我真的很难想什么搜索找到其他问题像我一样,并且更多地感谢我的加倍努力,同时向我展示如何捕捉异常情况! – Inertialilty

0

如果我理解正确,如果用户输入orc,那么您需要获得race.orc

你在正确的轨道上,你只需要输入字符串从用户,就像

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