Apache camel camel简单表达式中的三元算子

Apache camel camel简单表达式中的三元算子,apache-camel,talend,Apache Camel,Talend,使用此处描述的三元运算符逻辑 我正在尝试设置一个名为StatusMsg2的exchange属性,如下所示,其中 exchangeProperty.StatusMsg='abc' .setProperty("StatusMsg2") .simple("${exchangeProperty.StatusMsg} == null ? 'ee2e2e2' : 'fffffff'") 将StatusMsg2设置为字符串的 abc == null ? 'ee2e2

使用此处描述的三元运算符逻辑

我正在尝试设置一个名为StatusMsg2的exchange属性,如下所示,其中 exchangeProperty.StatusMsg='abc'

.setProperty("StatusMsg2")
.simple("${exchangeProperty.StatusMsg} == null ? 'ee2e2e2' : 'fffffff'")
将StatusMsg2设置为字符串的

abc == null ? 'ee2e2e2' : 'fffffff'
true ? 'ee2e2e2' : 'fffffff'
ee2e2e2
作为值,而不是计算表达式

我正在使用camel 2.29,尽管是在Talend Studio中。但泰伦德呈现了我输出的普通驼色

我已经检查了我的空格是否正确

如果我替换为

.simple("true ? 'ee2e2e2' : 'fffffff'")
我明白了

abc == null ? 'ee2e2e2' : 'fffffff'
true ? 'ee2e2e2' : 'fffffff'
ee2e2e2
如果我这样做

simple(true ? "ee2e2e2" : "fffffff")
然后我拿到绳子

abc == null ? 'ee2e2e2' : 'fffffff'
true ? 'ee2e2e2' : 'fffffff'
ee2e2e2
如果我尝试

.simple("${exchangeProperty.StatusMsg} == null" ? "ee2e2e2" : "fffffff")
我得到一个“类型不匹配:无法从字符串转换为布尔值”编译错误

如何识别三元表达式的第一部分 作为一种表达本身

谢谢你的建议


n

简单语言中不支持三元运算符,您昨天在邮件列表中已经从Claus那里得到了相同的答案,Claus是您正在引用的博客的作者,是Camel项目的技术负责人,自10年前第一次提交以来,他一直在研究Camel。你期待更多有信誉的消息来源吗,或者你为什么在这里再次询问?对不起-我没有看到克劳斯的回复…它也不在我的垃圾邮件中…我也看不到它在nabble中。。。。。请把它加在这里好吗?我在邮件列表上得到了回复。你是对的,在nabble上,它与原始电子邮件不正确地配对,克劳斯的回复在这里只是稍微详细一点。你提到的博客文章提到三元运算符是“实验”,结果只是一个实验。它从未被实现到Camel代码库中。顺便说一句,我们正在研究编译后的简单语言(现在是实验),但首先研究一种使用java代码的新Camel-joor语言,因此,您可以使用javas三元运算符:三元运算符在简单语言中不受支持,您昨天在邮件列表上已经从Claus那里得到了相同的答案,Claus是您正在引用的博客的作者,是Camel项目的技术负责人,自10年前第一次提交以来,他一直在研究Camel。你期待更多有信誉的消息来源吗,或者你为什么在这里再次询问?对不起-我没有看到克劳斯的回复…它也不在我的垃圾邮件中…我也看不到它在nabble中。。。。。请把它加在这里好吗?我在邮件列表上得到了回复。你是对的,在nabble上,它与原始电子邮件不正确地配对,克劳斯的回复在这里只是稍微详细一点。你提到的博客文章提到三元运算符是“实验”,结果只是一个实验。它从未被实现到Camel代码库中。顺便说一句,在编译的简单语言(现在是实验)上工作,但首先在使用java代码的新Camel-joor语言上工作,因此您可以使用java三元运算符: