三元运算符 (If-Then-Else)

你可以使用三元运算符在表达式内部执行 if-then-else 条件逻辑。 以下清单显示了一个最小示例:

  • Java

String falseString = parser.parseExpression(
    "false ? 'trueExp' : 'falseExp'").getValue(String.class);

在这种情况下,布尔值 false 导致返回字符串值 'falseExp'。 下面是一个更实际的例子:

  • Java

parser.parseExpression("name").setValue(societyContext, "IEEE");
societyContext.setVariable("queryName", "Nikola Tesla");

expression = "isMember(#queryName)? #queryName + ' is a member of the ' " +
    "+ Name + ' Society' : #queryName + ' is not a member of the ' + Name + ' Society'";

String queryResultString = parser.parseExpression(expression)
    .getValue(societyContext, String.class);
// queryResultString = "Nikola Tesla is a member of the IEEE Society"

有关三元运算符的更短语法,请参阅下一节关于 Elvis 运算符的内容。