数据处理
集成
基础依赖已包含该组件,可直接使用。
变量
//字符串
str = "张三";
//字符串拼接,有参数:name = "张三",age = 20
desc = "我是"+name+",我今年"+age+"了";
//数字
num = 2;
//计算,有参数:a = 1,b = 2
c = a+b+1;
//数组
list = [1,2,3,4];
//对象
json = {
a:1,
b:2
};
//创建 java 对象
list = new java.util.ArrayList();
ArrayList = Java.type("java.util.ArrayList");
list = new ArrayList();
取值
//上下文中有参数:a = 1,现要把 a 的值赋给 b
b = a
//上下文中有对象:obj = { "a":1 },现要把 a 的值赋给 b
b = obj.a
使用内置函数
提示
param 为组件外变量时,使用 this.param,this 为流程的上下文
isBlank(param) //param 为 String
isNotBlank(param) //param 为 String
isNull(param)//param 为 Object
isNotNull(param)//param 为 Object
isEmpty(param)//param 为 List、String、Object
isNotEmpty(param)//param 为 List、String、Object
使用低代码函数
//有函数 strUpperCase(),其能力是将字符串转成全大写形式
a = _fun.strUpperCase("abc");
//结果:a = "ABC"
使用 java 工具类
if(com.manatee.common.util.StringUtil.isBlank(xxx)){
...
}
if 逻辑
`判断对象不能为 null `
if(isNotNull(this.param)){
//...
}
`判断字符串不能为 blank `
if(isNotBlank(this.str)){
//...
}
`判断 list 不能为 empty `
if(isNotEmpty(this.list)){
//...
}
`逻辑符号`
与: && 或:||
循环逻辑
// 循环集合 list
for ( index = 0; index < list.size(); index++) {
one = list.get(index);
}
for each( one in list){
}
// 循环 map
for each (key in map.keySet()) {
}
for each (val in map.values()) {
}
switch case 逻辑
d=new Date().getDay();
switch (d)
{
case 0:x="今天是星期日";
break;
case 1:x="今天是星期一";
break;
case 2:x="今天是星期二";
break;
case 3:x="今天是星期三";
break;
case 4:x="今天是星期四";
break;
case 5:x="今天是星期五";
break;
case 6:x="今天是星期六";
break;
}
集合
list = new java.util.ArrayList();
list.add(1);
list.add(2);
对象
obj = new java.util.HashMap();
obj.put("name", "张三");
obj.put("age", 20);
引入常用包
load("nashorn:mozilla_compat.js");
importPackage("java.util");
list = new ArrayList();
list.add("a");
list.add("b");
map = new HashMap();
map.put("a", "a");
map.put("b", "b");
set = new HashSet();
set.add("a");
set.add("a");
uuid = UUID.randomUUID();
// ------------------------------------------------
importPackage("java.lang");
l = new Long(123);
d = new Double(3.1415926);
f = new Float(Math.E);
s = new Short("1");
sb = new StringBuffer();
sb.append("a --- ");
sb.append("b --- c");
sb.delete(sb.length() - 1, sb.length());
// ------------------------------------------------
importPackage("com.alibaba.fastjson");
jsonObject = new JSONObject();
jsonObject.put("a", "a");
jsonObject.put("b", "b");
strings = jsonObject.keySet();
a = jsonObject.get("a");
jsonObject.remove("b");
jsonArray = new JSONArray();
jsonArray.add("a");
jsonArray.add(true);
jsonArray.add(123);
value_0 = jsonArray.get(0);
isEmpty = jsonArray.isEmpty();
arrayContainsA = jsonArray.contains("a");
// ------------------------------------------------
inport = new JavaImporter(java.util, java.io, com.alibaba.fastjson, java.lang);
with(inport) {
// 作用域
l = new Long(123);
d = new Double(3.1415926);
f = new Float(Math.E);
s = new Short("1");
sb = new StringBuffer();
sb.append("a --- ");
sb.append("b --- c");
sb.delete(sb.length() - 1, sb.length());
list = new ArrayList();
list.add("a");
list.add("b");
map = new HashMap();
map.put("a", "a");
map.put("b", "b");
set = new HashSet()
set.add("a");
set.add("b");
set.add("b");
jsonObject = new JSONObject();
jsonObject.put("a", "a");
jsonObject.put("b", "b");
strings = jsonObject.keySet();
a = jsonObject.get("a");
jsonObject.remove("b");
jsonArray = new JSONArray();
jsonArray.add("a");
jsonArray.add(true);
jsonArray.add(123);
value_0 = jsonArray.get(0);
isEmpty = jsonArray.isEmpty();
arrayContainsA = jsonArray.contains("a");
}
场景记录
1、有以下这种情况,由于数据处理组件当中支持java类,所以为增强代码的可读性,建议大家使用如下形式
currentData = new java.util.HashMap();
beforeData = new java.util.HashMap();
//这处使用的就是java类调用函数获取map值的方式,建议大家使用这种方式
if (currentData.get("doctorId")== beforeData.get("doctorId")) {
currentData.put("doctorId", "_cellMergeUp");
}
}
2、如果需要查看变量类型,可以使用如下方式
log.info("info : {}", student.getClass());