gpt4 book ai didi

Mule MEL使用差异

转载 作者:行者123 更新时间:2023-12-02 15:27:46 25 4
gpt4 key购买 nike

我一直在使用不同形式的 Mule 表达式语言。我无法弄清楚之间的区别

#[flowVars.myVariable]  

#[flowVars['myVariable']]

当有变量时,它们都会给出结果。但为什么当变量不存在时它们的行为不同?

就像如果被调用的变量不可用,那么第一个表达式将导致异常。而第二个表达式只是发出警告或按原样打印出来,如果在记录器消息中。

为什么会有这种差异?

另外,在查看 Mule 3.6 的文档时,我发现文档中不再显示第二个表达式。

表达式#[flowVars['myVariable']] 是否被弃用?

最佳答案

不同之处在于 MVEL 处理这两种不同的访问 map 条目的方式。

  • #[flowVars['myVariable']] 等同于 flowVars.get('myVariable'),如果 flowVars map 不包含 'myVariable' 条目,
  • #[flowVars.myVariable]flowVars 映射视为虚拟对象,如果 'myVariable' 条目是缺少,因为在这种情况下,它不会解析为映射get,而是直接使用对象成员(字段或方法),该成员在访问之前必须存在。

我不认为 #[flowVars['myVariable']] 会被弃用,因为它是 MVEL 提供的核心功能。

引用:http://mvel.codehaus.org/MVEL+2.0+Property+Navigation#MVEL2.0PropertyNavigation-MapAccess

关于Mule MEL使用差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29499377/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com