例如:
Element elementInclude1 = doc.createElement("include");
elementMethods.appendChild(elementInclude1);
elementInclude1.setAttribute("name", "T1");
Element elementInclude2 = doc.createElement("include");
elementMethods.appendChild(elementInclude2);
elementInclude2.setAttribute("name", "T2");
Element elementInclude3 = doc.createElement("include");
elementMethods.appendChild(elementInclude3);
elementInclude3.setAttribute("name", "T3");
....
在上面的示例中,创建的对象数(elementInclude1,elementInclude2,..)是动态已知的。
在运行时中不知道所需的对象,使用该值在每次迭代中创建的循环新对象中迭代。我怎样才能做到这一点。
需要在运行时动态创建对象elementInclude1,elementInclude2,elementInclude3,...
为了更好地理解,我在下面的代码中使用了一些错误的做法。
String noOfObj = 5;
for(int i = 1; i<=noOfObj; i++)
{
Element elementInclude+**noOfObj** = doc.createElement("include");
elementMethods.appendChild(elementInclude+**noOfObj**);
elementInclude+**noOfObj**.setAttribute("name", "T1");
}
答案 0 :(得分:2)
int noOfObj = 5;
//create an array to hold elements
Element[] elememtsArray = new Element[noOfObj];
for(int i = 1; i<=noOfObj ; i++){
Element element = doc.createElement("include");
elememtsArray[i] = element;
}
或者,如果元素数量未知,请使用列表
ArrayList<Element> elementsList = new ArrayList<>();
for(int i = 1; i<= 6 ; i++){//6 is an arbitrary num for demo
Element element = doc.createElement("include");
elementsList.add(element);
}
或者,如果您需要参考名称,请使用地图
Map<String, Element> elementsMap= new HashMap();
for(int i = 1; i<=7 ; i++){ //7 is an arbitrary num for demo
Element element = doc.createElement("include");
String elementName = "elementInclude"+ i;
elementsMap.put(elementName, element);
}