Java 三元(内联)运算符 : accesing comparation variables

标签 java variables conditional-operator

在Java中,我有一个如下所示的表达式:

return (a.getValue() > b.getValue()) ? a.getValue() : b.getValue();

当我大约 13 岁的时候,我曾经用 MSL(mIRC Scriptint 语言)编写代码。 该语言具有以下三元运算符:

return iif($valueOfA > $valueOfB, $v1, $v2);

其中$v1和$v2代表$valueOfA和$valueOfB。

我不喜欢我必须调用 a.getValue()b.getValue() 两次,而且这非常丑陋(并且破坏了内联运算符的点):

valA = a.getValue();
valB = b.getValue();
return (valA > valB ? valA : valB);

所以我正在寻找这样的东西:

return (a.getValue() > b.getValue) ? [param1] : [param2];

最佳答案

类似于:

return ((a.getValue() > b.getValue()) ? a : b)).getValue();

已经可以提供帮助了。您还可以在 A 和 B 类中实现一些方法来直接比较“A”和“B”,以便能够编写如下内容:

return ((a.greaterThan(b)) ? a : b).getValue(); // no operator overload in Java

此外,如果您使用对象,也许返回 a 或 b (而不是它们的“值”)会是一个更好的主意。

这当然取决于您对“a”和“b”的类别和用法。

关于Java 三元(内联)运算符 : accesing comparation variables,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15242282/

相关文章:

java - spring Rest Webservice api 中的以下错误是什么?

c - 如何返回一个变量名并为c中返回的变量赋值

c++ - 为优先级队列重载运算符<

java - 我创建的 pdf 文件中丢失了空格(pdfbox 和 itextpdf)

java - 反序列化对象,其类 serialVersionUID 在 Java 中已更改

javascript - setTimeout 无法访问变量

c - 如何从另一个函数调用局部变量c

python - 三元运算符有异常(exception)吗?

javascript - 抛出错误消息无法在 OOP Javascript 三元运算符上编译

java - 如何使文本流可选择