使用JEXL,我尝试初始化数组,而不是将元素添加到数组中,但是下面的代码给出了‘不可解决的属性'0'错误。
var abc=[];
abc[0]=5;1)如何初始化空数组并继续在其中添加值?
2)我是否可以像列表一样使用它,在初始化时不需要指定大小?
发布于 2018-04-26 05:10:54
在JEXL语法中,可以使用new函数初始化对象。
其他选项是在上下文数组中添加:
这是一个使用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);发布于 2021-06-08 15:20:50
在JEXL中,语法[]创建一个Java数组,而不是List。作为一个数组,它有一个固定的大小,所以您不能向它添加值。但是,JEXL3.2有一个用于创建ArrayList文本的新语法。基本上,您可以添加...作为最后一个元素。
因此,在JEXL 3.2中,您的示例可以编写为:
var abc=[...];
abc.add(5);有关更多信息,请参见JEXL文字语法引用。
https://stackoverflow.com/questions/50034040
复制相似问题