Void函数有两个参数,但不是两个都需要使用

时间:2015-08-08 20:44:46

标签: java android null arguments robotics

First Tech Challenge,一个机器人组织现在拥有一个Android平台而不是乐高。我的团队正在转向java,但我有一个简单的问题。如果我有一个具有两个参数power1power2的函数,并且两者都可以设置为double,但如果没有指定第二个参数,它将运行只有{{1}的两个电机变量。这是我的代码:

power1

更新:以下是Android Studio的屏幕截图:

enter image description here

2 个答案:

答案 0 :(得分:1)

这里有几个问题:

  1. 原始double不能是null,您必须使用java.lang.Double包装器。
  2. =是赋值运算符。使用==运算符完成测试相等性。
  3. 您在power1之后使用power2if,无论其是否被执行。相反,您可能打算使用else子句:

  4. public void setDriveMotorPower(Double power1, Double power2) {
        motorLeft.setPower(power1);
        if (power2 == null) {
            motorRight.setPower(power1);
        } else {
            motorRight.setPower(power2);
        }
    }
    

答案 1 :(得分:0)

如果一个函数有2个参数,你必须发送它们但是还有另一个想法:如果你不想使用power2例如你可以传递一些不可能发生的值 - 例如 - 1或根据你的情况做任何事情,然后检查if(power2 == -1),这比检查null更好 顺便说一句,方法.setPower() for将被调用4次,因为您刚使用if而不是if else。它应该像

motorLeft.setPower(power1);
if (power2 == null) { // or -1 like I said before
        motorRight.setPower(power1);
} else {
    motorRight.setPower(power2);
}