-5

在Java中是否可以使用三元将多个参数传递给方法调用?

例如 - 在一个方法中有:

    print(degree == 270 ? "e", 5 : "t", 6);

调用:

    public void print(String s, int t){

    }

通过使用三元,我想传入 e 和 5 OR t 和 6。无需复制代码 - 例如:

    print(degree == 270 ? "e" : "t", degree == 270? 5 : 6);

我想有些不明白,我不想使用上面的这个方法,它运行检查是不必要的时间。

4

3 回答 3

1

为什么不

    (degree == 270) ? print("e", 5) : print("t", 6);

编辑:显然在java中不起作用:/

于 2013-05-29T11:23:33.840 回答
1

如果您的表达式包含一个包装器对象,该对象具有两个值(s 和 t)作为变量,那么这是可能的,但是您必须实例化两者。为了使您的代码更好,我会尝试以下方法:

if(degree == 270) {
    print("e", 5);
}
else {
    print("f", 6);
}

或者

switch(degree) {
    case 270:
        print("e", 5);
        break;
    default:
        print("f", 6);
        break;
}

只要您与绝对值(而不是范围)进行比较。

我知道这不是您要寻找的,但通常,在企业环境中,这是推荐的符号,因为对于其他将维护代码并降低错误风险的人来说,这是最容易理解的,如果一些新手程序员必须这样做改变些什么。

最后,无论哪种方式,编译后的代码都将是高效的。实际上,我认为您的第二个选项将通过条件表达式两次,在这种情况下,最好只使用我编写的替代方案之一。

问候

于 2013-05-29T11:30:31.763 回答
0

条件表达式(这是正式名称)是一个表达式,就像任何其他 Java 表达式一样。就周围的方法调用而言,只有它的结果很重要。很明显,您不能使用一个表达式来指定两个参数,因为每个参数都是它自己的表达式。

于 2013-05-29T11:19:55.590 回答