当我突然想到这个问题时,我正在玩Java中的ternary operator。在PHP中,我们可以使用三元运算符来做出决定,然后在主文档中添加一些命令(或标签)(PHP手册中的一个示例)。
echo (true?'true':false?'t':'f');
现在,在Java中有类似的东西吗?比如,有什么类似于下面的代码吗?
jButton1.getText().equals("hi")?jLabel1.setText("one"):jLabel1.setText("two")
我想要的是,只应根据true / false值执行其中一个语句。我知道使用if-else
构造可以做得更好,但我很好奇并且问了这个问题。
答案 0 :(得分:3)
请改用:
jLabel1.setText(jButton1.getText().equals("hi") ? "one" : "two");
根据JLS,此运算符在Java中称为conditional operator。您可以通过阅读前面的链接
来查看对于第二个或第三个操作数,它是编译时错误 表达式是一个void方法的调用
答案 1 :(得分:0)
或者:
jButton1.getText ().equals ("hi") && jLabel1.setText ("one") || jLabel1.setText ("two");
JRLs解决方案更优雅,但如果您喜欢操纵不同的标签,取决于“hi”,您可能需要这样的方法。
答案 2 :(得分:0)
Java绝对有三元运算符。它看起来像你正确使用它。如果它给我带来问题,我会尝试使用括号,但看起来你正在使用它。