三元运算符 Java

2022-09-02 23:11:50

有没有办法在三元运算中实现这一点。我对三元的东西很陌生,也许你可以指导我。

if(selection.toLowerCase().equals("produkt"))
     cmdCse.setVisible(true);
else
     cmdCse.setVisible(false);

这个似乎不起作用。

selection.toLowerCase().equals("produkt")?cmdCse.setVisible(true):cmdCse.setVisible(false);

答案 1

在这种情况下,您甚至不需要三元运算符:

 cmdCse.setVisible(selection.toLowerCase().equals("produkt"));

或者,更清洁:

 cmdCse.setVisible(selection.equalsIgnoreCase("produkt"));

您的版本:

selection.toLowerCase().equals("produkt")? cmdCse.setVisible(true): cmdCse.setVisible(false);

语义不正确:三元运算符应该表示替代赋值,它不是语句的完全替代品。这没关系:if

double wow = x > y? Math.sqrt(y): x;

因为您正在根据条件将 或 分配给 。xMath.sqrt(y)wow

我的2cents:只有当它使您的程序更清晰时才使用三元运算符,否则您最终会有一些无法破译的单行。


答案 2

也许

cmdCse.setVisible(selection.toLowerCase().equals("produkt"));