三元传递论点

时间:2013-05-29 11:16:39

标签: java ternary-operator operation ternary

在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);

我不认为有些理解,我不想在上面使用这种方法,它运行检查不必要的时间。

3 个答案:

答案 0 :(得分:1)

为什么不

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

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

答案 1 :(得分: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;
}

只要你与absoute值(不是范围)进行比较。

我知道这不是您正在寻找的东西,但通常情况下,在企业环境中,这是建议使用的符号,因为对于其他人来说,这是最容易理解的代码,如果有些新手那么会减少错误的风险程序员必须改变一些东西。

最后,编译后的代码无论如何都会有效。事实上,我认为你的第二个选项会经历两次条件表达式,在这种情况下,最好只使用我写的其中一个选项。

此致

答案 2 :(得分:0)

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