ExpressionLanguage


License

License

GroupId

GroupId

com.wenyu7980
ArtifactId

ArtifactId

el
Last Version

Last Version

1.0.0
Release Date

Release Date

Type

Type

jar
Description

Description

ExpressionLanguage
ExpressionLanguage
Project URL

Project URL

https://github.com/wenyu7980/el
Source Code Management

Source Code Management

https://github.com/wenyu7980/el

Download el

How to add to project

<!-- https://jarcasting.com/artifacts/com.wenyu7980/el/ -->
<dependency>
    <groupId>com.wenyu7980</groupId>
    <artifactId>el</artifactId>
    <version>1.0.0</version>
</dependency>
// https://jarcasting.com/artifacts/com.wenyu7980/el/
implementation 'com.wenyu7980:el:1.0.0'
// https://jarcasting.com/artifacts/com.wenyu7980/el/
implementation ("com.wenyu7980:el:1.0.0")
'com.wenyu7980:el:jar:1.0.0'
<dependency org="com.wenyu7980" name="el" rev="1.0.0">
  <artifact name="el" type="jar" />
</dependency>
@Grapes(
@Grab(group='com.wenyu7980', module='el', version='1.0.0')
)
libraryDependencies += "com.wenyu7980" % "el" % "1.0.0"
[com.wenyu7980/el "1.0.0"]

Dependencies

test (1)

Group / Artifact Type Version
junit : junit jar 4.12

Project Modules

There are no modules declared in this project.

表达式语言 EL (Expression Language)

作者:彣彧 [email protected]

注意

该库所有数字类型都是BigDecimal

语法

操作数 操作符 操作数 ;

支持的功能

  • 四则运算
  • 比较运算
  • 逻辑运算
  • 三元运算
  • 获取上下文中的属性值
  • 执行上下文中的方法

四则运算

运算符 运算符意义 示例
+ ExpressionLanguages.parse(“1+1;”,BigDecimal.class);
- ExpressionLanguages.parse(“1-1;”,BigDecimal.class);
* ExpressionLanguages.parse(“1*1;”,BigDecimal.class);
/ ExpressionLanguages.parse(“1/1;”,BigDecimal.class);

比较运算

运算符 运算符意义 示例
< 小于 ExpressionLanguages.parse(“1<1;”,Boolean.class);
<= 小于等于 ExpressionLanguages.parse(“1<=1;”,Boolean.class);
> 大于 ExpressionLanguages.parse(“1>0;”,Boolean.class);
>= 大于等于 ExpressionLanguages.parse(“1>=1;”,Boolean.class);
<> 不等于 ExpressionLanguages.parse(“1<>0;”,Boolean.class);
== 等于 ExpressionLanguages.parse(“1==0;”,Boolean.class);

逻辑运算

运算符 运算符意义 示例
&& ExpressionLanguages.parse(“1==0 && 1==0;”,Boolean.class);
|| ExpressionLanguages.parse(“1==0 || 1==0;”,Boolean.class);
ExpressionLanguages.parse(“!1==0”,Boolean.class);

三元运算

logic? left : right

ExpressionLanguages.parse(“1==0?2:3”,BigDecimal.class);

获取上下文中的属性值

需要设定上下文

public class Data {
    private String text;
}

ExpressionLanguages.parse("$.text;",new ElContext().addContext("$",new Data()),String.class);

执行上下文中的方法

需要设定上下文

public class Data {
    public String f(){
        return "text";
    }
}

ExpressionLanguages.parse("$.f();",new ElContext().addContext("$",new Data()),String.class);

运算符优先级

优先级由高到低

运算符
.
*/
+-
> >= < <= <> ==
&&
||
!
?:

Versions

Version
1.0.0