Spring表达式语言(SPEL)(02)

构造数组

/**
 * 数组生成
 */
@Test
public void test5(){
   
   
    int[] numbers1 = (int[]) parser.parseExpression("new int[4]").getValue();
	int[][] numbers2 = (int[][]) parser.parseExpression("new int[4][5]").getValue();
    
    // 一维数组可以初始化
    int[] numbers3 = (int[]) parser.parseExpression("new int[]{1,2,3}").getValue();
    Assert.assertTrue(numbers3.length==3);
    // 二维数组初始化失败
    int[][] numbers4 = (int[][]) parser.parseExpression("new int[][]{
   
   {1,2,3},{4,5,6}}").getValue();
}

如果需要构造一个空数组,则可以直接new一个空的数组,多维数组也是支持的,但是多维数组只支持一个空的数组,对于需要初始化指定数组元素的定时暂时在SPEL中是不支持的

构造List

在SPEL中可以使用{e1,e2,e3}的形式来构造一个List

@Test
public void test09() {
   
   
    ExpressionParser parser = new SpelExpressionParser();
    List<Integer> intList = (List<Integer>)parser.parseExpression("{1,2,3,4,5,6}").getValue();
    int index = 0;
    for (Integer i : intList) {
   
   
    	Assert.assertTrue(i == ++index);
    }
}

如果希望构造的List的元素还是一个List,则可以将构造的List的元素定义为{e1,e2,e3}这样的形式,如:{ {1,2},{3,4,5},{6,7,8,9}}

@Test
public void test09_1() {
   
   
    ExpressionParser parser = new SpelExpressionParser();
    List<List<Integer>> list = (List<List<Integer>>)parser.parseExpression("{
   
   {1,2},{3,4,5},{6,7,8,9}}").getValue();
    int index = 0;
    for (List<Integer> intList : list) {
   
   
        for (Integer i : intList) {
   
   
        	Assert.assertTrue(i == ++index);
        }
    }
}

构造Map

在SPEL中如果需要构造一个Map则可以使用{key1:value1,key2:value2}的形式进行定义

@Test
public void test10() {
   
   
	 ExpressionParser parser = new SpelExpressionParser();
	 Map<String, Long> map = (Map<String, Long>)parser.parseExpression("{'ke
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值