MVEL是Apache许可的功能强大的表达语言(EL),用Java编写,用于基于Java的应用程序,因此其语法与Java相似.

> MVEL表达式干净,其语法易于理解.

> Apache流口水将MVEL模板用于动态代码生成.

> MVEL引擎性能优于其他EL

发动机.

考虑一个例子.

rule "validate holiday"

dialect "mvel"

dialect "java"

when

$h1 : Holiday( month == "july" )

then

System.out.println($h1.name + ":" + $h1.month);

end

方言“ mvel”的目的是指向普通旧Java对象(PO??JO)类的变量的Getter和Setters.考虑上面的示例,其中使用了假日类,并在圆括号(括号)内使用了“月”.因此,使用帮助方言“ mvel”可以访问变量“ month”的获取器和设置器.

方言“ java”用于帮助我们在规则中编写Java代码.这有一个限制或特征.我们不能在规则的“何时”部分中使用Java代码,但可以在“则”部分中使用Java代码.

我们还可以声明没有$符号的Reference变量$h1.对此没有限制.将$符号放在变量之前的主要目的是标记POJO类和Rule的变量之间的差异.

java mvel_Drools:mvel和Java方言之间的差异相关推荐

  1. java 嵌套对象转xml_Gson对Java嵌套对象和JSON字符串之间的转换 | 学步园

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,具有良好的跨平台特性.近几年来已经和XML一样成为C/S架构中广泛采用的数据格式.有关JSON的更多知识, ...

  2. Java计算两个字符串日期之间的天数差

    Java计算两个字符串日期之间的天数差 调用方法: public static void main(String[] args) throws ParseException {String a = & ...

  3. java与c语言工作量对比比例,对比平台-- C ++与Java之间的差异

    C ++与Java之间的差异 创建为C语言扩展的通用编程语言,可以称为带有类的C语言,称为C ++.该语言为系统和内存提供高级控制,并且随着跨平台语言开发高性能应用程序.该语言由Bjarne Stro ...

  4. java状态模式和策略模式_Java状态和策略设计模式之间的差异

    java状态模式和策略模式 为了在Core Java应用程序中正确使用状态和策略设计模式,对于Java开发人员清楚地了解它们之间的区别很重要. 尽管状态和策略设计模式的结构相似,并且都基于开放式封闭设 ...

  5. Java状态和策略设计模式之间的差异

    为了在Core Java应用程序中正确使用状态和策略设计模式,对于Java开发人员清楚地了解它们之间的区别很重要. 尽管状态和策略设计模式的结构相似,并且都基于开放式封闭设计原则,从SOLID设计原则 ...

  6. Java 内存 关系_JVM和Linux之间的详细内存关系

    JVM和Linux之间的详细内存关系 在一些具有8g物理内存的服务器上,主要运行Java服务.系统内存分配如下:Java服务的JVM堆大小设置为6g,监视过程大约需要600m,Linux本身使用大约8 ...

  7. Java中List和Map接口之间的区别

    列表与地图界面 (List vs Map interface) Here, we will see how List differs from Map interface in Java and we ...

  8. 两个时间的差值Java,Java如何找到两个时间之间的差值?

    下面的代码片段向您展示了如何找到LocalTime类表示的两个时间对象之间的差异.要获得两个LocalTime对象之间的差异,我们可以使用持续时间.between()方法.这个方法返回一个Durati ...

  9. java client和servers_“java -server”和“java -client”之间的真正区别?

    这实际上与HotSpot和默认选项值 ( Java HotSpot VM选项 )相关联,这些选项在客户端和服务器configuration之间有所不同. 从白皮书( The Java HotSpot ...

最新文章

  1. linux下后台执行shell脚本
  2. .Net软件测试化之道 [James D.MCCaffrey]
  3. multiprocessing多进程(31-04)创建进程的两种方式
  4. Python中的魔法方法
  5. pytorch保存模型参数
  6. 2018-3-7 色彩的一些知识
  7. 关于TCP报文段以及拥塞窗口cwnd的理解纠正
  8. oracle数据存入临时表,ORACLE数据库临时表总结
  9. wordpress外贸建站四大步骤,适合新手
  10. MIUI9线刷包精简
  11. Python人脸识别 Python3.7+OpenCV+Dlib+罗技C920摄像头 实现离线实时摄像头画面人脸检测+识别
  12. beyondcompare ubuntu revoked问题
  13. 语音识别(ASR)论文优选:挑战ASR规模极限Scaling ASR Improves Zero and Few Shot Learning
  14. 谷歌在新标签页打开搜索结果(超级新手)
  15. 《离职申请表》交了后 在公司最后一天上班
  16. 关于计算机的手抄报知识,电子手抄报
  17. 关于Andriod org.gradle.api.tasks.TaskExecutionException: Execution failed for task 问题及解决办法
  18. IDEA 设置代码提示或自动补全的快捷键
  19. Java开发 - 树(二叉树,二叉排序树,红黑树)
  20. react学习—高阶组件HOC

热门文章

  1. 《计算机视觉40例》内容简介
  2. 二维码在设备点维一体化管理中的应用
  3. IPSec高可用-主备链路
  4. 1109 NOIP 模拟考试
  5. php中strrpos函数,php strrpos()与strripos()函数
  6. 如何给select标签赋初值
  7. 欧几里得算法 详细证明
  8. Makerbase ODrive 霍尔电机位置环模式配置
  9. 经济调度问题的建模及求解—考虑直流潮流(DC-OPF)与切负荷
  10. 静态数据成员和静态数据成员函数