【问题标题】:Simple variable reference简单变量引用
【发布时间】:2017-06-03 18:35:26
【问题描述】:

所以我目前正在尝试制作一个简单的 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
}

所以我要做的就是能够接受用户的输入并像比赛一样。(“无论他们的选择是什么”),但我无法弄清楚。感谢您的帮助,如果造成混淆,我们深表歉意。

【问题讨论】:

  • String raceString = inputRace.nextLine(); 然后将race.valueOf(inputRace)更改为race.valueOf(raceString)
  • 说真的:有无数的问题和教程解释了如何使用扫描仪和枚举。
  • 谢谢ishnark!还有ghostcat,我正试图找到它哈哈....我主要是在使用种族类的变量时遇到问题

标签: java enums java.util.scanner


【解决方案1】:

要访问输入数据,您必须使用诸如 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 和 Player,这是命名类的标准方式。

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

【讨论】:

  • 非常感谢你解释得这么好,我真的很难想到要搜索什么才能找到像我这样的其他问题,更感谢你付出了额外的努力,也向我展示了如何捕捉例外!
【解决方案2】:

如果我理解正确,如果用户输入orc,则需要获得race.orc,此后。

你在正确的轨道上,你只需要输入来自用户的字符串,比如

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-19
    • 2019-12-07
    • 2011-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-22
    相关资源
    最近更新 更多