忽略参数的方法

时间:2015-11-24 12:48:33

标签: java parameters

参数" y"在某些情况下(当x> 10时),这里完全被忽略了:

public doTask(int x, int y) {

    if (x > 10) {
        return x * 10;
    }
    else {
        return (x * 10) + y
    }
}

我认为拥有一个可以忽略其参数的方法会产生误导。我怎么能重写上面的代码来避免这个问题?

4 个答案:

答案 0 :(得分:2)

您可以使用return x * 10 + y * (x > 10 ? 0 : 1);

但我并没有真正看到你现在所拥有的问题,而我的替代方案可能对某些读者不太清楚。

在某些情况下,数学编程中存在大量情况,变量无效。例如,幅度函数A * Math.sin(omega * t)偶尔不会“需要”A

对您的功能进行适当的单元测试可以清除任何错误。

答案 1 :(得分:2)

如果需要,您可以使用Java 8的Optional类型并在其中传递y。但我强烈认为那将是一种矫枉过正。 y正在至少一个代码流中使用,因此在方法签名中接受它是完全有效的。

答案 2 :(得分:0)

你正在使用if else statemenet到底应该如何使用它,是技术上你可以使用Java 8标准编码使用Optional(https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html)但是对于上面的例子来说不仅仅是矫枉过正。你所拥有的是完全可以接受的并且最有意义。

答案 3 :(得分:0)

这个怎么样?

public doTask(int x, int y) {
    return x * 10 + (x > 10 ? 0 : y);
}