如何在JEXL中使用数组?初始化与元素添加问题咨询
JEXL数组初始化与动态元素添加问题解答
Hey there! Let's break down your JEXL array issues clearly:
1. 如何正确初始化空数组并添加值?
你的代码var abc=[]; abc[0]=5;报错,是因为JEXL里空的[]创建的不是Java数组,而是一个空的脚本对象(类似映射结构),它会把0当作属性名而非数组下标来处理,自然找不到对应的属性。
要正确操作数组或动态集合,分两种情况:
- 使用固定大小的Java数组:需要先指定数组的类型和长度,之后再通过下标赋值:
// 创建长度为3的int数组 var intArray = new int[3]; intArray[0] = 5; intArray[1] = 10; - 使用动态可扩容的集合(推荐用于动态添加元素):如果需要随时添加元素,直接用Java的
ArrayList更合适,它不需要初始化时指定大小:var dynamicList = new java.util.ArrayList(); dynamicList.add(5); // 添加第一个元素 dynamicList.add(15); // 继续添加 // 也可以通过下标获取元素 var firstElement = dynamicList.get(0);
2. 能否像List一样无需在初始化时指定大小使用数组?
答案是不行。因为JEXL依赖的Java数组本质是固定长度的,一旦创建完成,就无法修改其大小。如果需要无需指定初始大小、支持动态添加元素的结构,就用ArrayList或其他Java集合类(比如LinkedList),它们设计的初衷就是处理动态元素的场景。
内容的提问来源于stack exchange,提问作者Pratik
相关产品推荐
相关产品推荐

