MVEL快速入门—MVEL属性和文字讲解(二)

3 篇文章 1 订阅

相关文章

 🔥 MVEL快速入门—MVEL基础语法讲解(一)

以下为今日内容:

属性信息

  MVEL的属性信息保持了其他bean一般通常使用的形式,略有区别的是,MVEL为访问属性、静态信息、Map等提供了统一的访问形式

Bean属性

  正如我们熟悉的Java语言一样,MVEL支持我们常用的get写法,比如:

student.getManager().getName();

  为了简化操作,MVEL也支持我们这样来写:

student.manager.name

  官方提醒:在对象中的字段是公开的的情况下,MVEL 仍然倾向于通过它的获取方法访问属性。

判空取属性

  有的时候我们可能并不确定一个值是不是空的,这时我们可以使用判空操作:

student.?manager.name

  这句话相当于下面的语句:

if (student.manager != null) { return student.manager.name; } else { return null; }

List&Array获取

  在List或Array获取的时候,我们使用方括号并在其中放置需要获取的索引,比如:

students[5]

  这相当于我们的Java代码:

students.get(5);

Map访问

  Map访问的形式和php有些类似,采用方括号内写属性的形式获取,比如:

students["zhang"]

  这相当于我们的Java代码:

students.get("zhang");

  如果Map的key是String的时候,他可以接受一种特殊的写法:

students.zhang

字符串拆分数组

  MVEL支持将字符串拆分成类似于 String.charAt() 的形式,比如:

foo = "My String";
foo[0]; // returns 'M';

文本

  正如字面意思,文本是指在特定脚本的源文件中代表一个固定值。

普通文本

  文本接受单引号或双引号包裹,比如:

"This is a string literal"
'This is also string literal'

字符串转义

\\ - 两个反斜线表示一个反斜线
\n - 换行
\r - 返回
\u#### - Unicode字符 (Example: \uAE00)
\### - 8进制字符 (Example: \73)

数字

  整数支持表示为 10进制、8进制、16进制。

  10进制表示就是正常书写:

252 //10进制

  通过将数字的第一位置为0,将识别为8进制数字,我们可以使用0-7表示这个数字,比如:

0214 //8进制

  通过添加 0x 前缀,将可以表示16进制数字,比如:

0xAFA0  //16进制 

浮点型数字

  一个浮点数由一个整数和一个由点字符表示的派生部分组成,还有一个可选的表示精度类型的后缀。

  比如下面几种形式都是合法的:

10.503 // double类型
94.92d // double类型
14.5f // float类型

大数

  MVEL允许用户通过结尾标识 B 或 I 表示大的整数或大的小数。注意的点是,大写是必须的。比如:

265.2992013B // 大的小数型
859823I // 大的整数型

布尔

  布尔类型很好理解,表示为 true 或 false

  空的场景需要使用保留关键字  null  或  nil  表示

类型字面的处理与Java中的基本相同,其格式如下。''<PackageName>.<ClassName>''。

因此,一个类可以被限定为这样:

java.util.HashMap

  或者,如果该类已经被内联或外部配置导入,只需要写类名就可以,比如:

HashMap

  这里推荐一篇栈溢出的问答:Import this class in MVEL and assign values to its property and access its method - Stack Overflow 

嵌套类

  在MVEL2.0中,嵌套类不能通过标准的点状符号(如Java)来访问。相反,你必须用符号 $ 来限定这些类,比如:

org.proctor.Person$BodyPart 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员麻薯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值