如何在JEXL中使用Array?

时间:2018-04-26 02:40:13

标签: arrays jexl

使用JEXL,我尝试初始化数组,而不是在其中添加元素,但是在代码下方为我提供了' 0' 错误

var abc=[]; 
abc[0]=5;

1)如何初始化空数组并继续在其中添加值?

2)我可以像List一样使用它,在初始化时我不需要指定大小吗?

2 个答案:

答案 0 :(得分:0)

<{3>}中的

您可以使用new函数初始化对象。

其他选项是添加到上下文arraylist:

这是jexl2的一个工作示例:

    JexlEngine jexl = new JexlEngine();
    String jexlExp = "var abc=new(\"java.util.ArrayList\", 1);abc[0]=5";
    Expression e = jexl.createExpression( jexlExp );
    List<Integer> abc = new ArrayList<>(1);
    JexlContext jc = new MapContext();
    //jc.set("abc", abc ); second option to add arraylist to context
    Object o = e.evaluate(jc);

答案 1 :(得分:0)

在 JEXL 中,语法 [] 创建一个 Java 数组,而不是一个 List。作为一个数组,它有一个固定的大小,所以你不能向它添加值。但是,JEXL 3.2 具有用于创建 ArrayList 文字的新语法。基本上,您添加 ... 作为最终元素。

所以在 JEXL 3.2 中,你的例子可以写成:

var abc=[...]; 
abc.add(5);

有关详细信息,请参阅 JEXL literal syntax reference