非脚本语言中的脚本行为

时间:2011-08-21 17:18:24

标签: java coding-style behavior scripting-language

当我突然想到这个问题时,我正在玩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构造可以做得更好,但我很好奇并且问了这个问题。

3 个答案:

答案 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绝对有三元运算符。它看起来像你正确使用它。如果它给我带来问题,我会尝试使用括号,但看起来你正在使用它。

Java Term of the Week: Ternary Operator 正在解释它。