【问题标题】:How can I fix an invalid arugement operator in Java?如何修复 Java 中无效的参数运算符?
【发布时间】:2022-01-06 04:51:07
【问题描述】:

我正在努力调试我的代码。在获取我的实例并尝试从我的实例变量中减去 1 后出现这个错误,代码给了我一个错误。我尝试调试了很多次,但我无法弄清楚。该错误是对操作无效的争论 ++/--

   game.setNumHealthPotions(game.getNumHealthPotions()--); // The Second game.getNumHealhPotions has the error.

第二个错误

game.setNumHealthPotions(game.getNumHealthPotions++);

我的 setter 和 getter 两行

public void setNumHealthPotions(int numHealthPotions){
    this.numHealthPotions = 1;
}

  public int getNumHealthPotions(){
    return numHealthPotions;
}

【问题讨论】:

  • 不确定是否使用 ++ 或 -- 直接在方法调用上 -- 但看起来您的 setter 总是会将值设为 1,无论您是否可以使操作正常工作。只是一个想法 - 你能创建新方法 addHealthPotion()consumeHealthPotion 吗?
  • setNumHealthPotions() setter 方法中,行:this.numHealthPotions = 1; 应该是:this.numHealthPotions = numHealthPotions;

标签: java debugging operators invalid-argument


【解决方案1】:

++-- 是赋值运算符。您不能为方法分配值。您必须同时调用 getset 才能读取和分配:

game.setNumHealthPotions(game.getNumHealthPotions() + 1);

如果是常见用例,您也可以添加增量方法:

public int incrementNumHealthPotions(int increment) {
    return this.numHealthPotions += increment;
}

这样称呼:

game.incrementNumHealthPotions(-1);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-11-08
    • 1970-01-01
    • 2022-10-18
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多