使用JEXL,我尝试初始化数组,而不是在其中添加元素,但是在代码下方为我提供了' 0' 错误
var abc=[];
abc[0]=5;
1)如何初始化空数组并继续在其中添加值?
2)我可以像List一样使用它,在初始化时我不需要指定大小吗?
答案 0 :(得分:0)
您可以使用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。