public class ServersList {
private Host host;
private Server server;
private InfoList infoList;
private List<AbcInformation> abcInformation;
@XmlElement(name = "Host")
@JsonProperty("Host")
public Host getHost() {
return this.host;
}
//Get Set functions for all object
}
我们有上述课程。它包含其他类的一些对象和get / set方法,如上所示。我们正在解析XML文件并创建ServersList类的数组。例如,
ServersList[] serversArray = new ServersList[count];
for (int index = 0; index < count; index++) {
serversArray[index] = new ServersList();
serversArray[index].setInfoList(serConfig
.getInfoList());
serversArray[index].setHost(serConfig
.getHost());
serversArray[index].setServer(serConfig
.getServer());
serversArray[index].getHost().setCid(
listResponse.getHost().get(index).getCid());
serversArray[index].getHost().setCName(
listResponse.getHost().get(index).getCname());
serversArray[index].getHost()
.setCurrentName(listResponse.getHost().get(index)
.getCurrentName());
serversArray[index].getHost().setHostName(listResponse.getHost().
get(index).getName());
serversArray[index].getHost().setHostUuid(
listResponse.getHost().get(index).getId());
}
我们的问题是在for循环之后,serversArray数组的所有值都是相同的(可能与xml中的最后一个元素有关)。在调试时我明白,每次迭代时,每行的值都会改变当前行的值。你能为此建议一个解决方案吗?
答案 0 :(得分:0)
尝试这样做,应该有用。
public static void main(String[] args) {
ServersList sList=null;
int count=10;
ServersList[] serversArray = new ServersList[count];
for (int index = 0; index < count; index++) {
sList = new ServersList();
sList.setHost(....);
//..........other setter...........
serversArray[index] = sList;
}
for (ServersList serversList : serversArray) {
System.out.println(serversList.getHost());
}
}
答案 1 :(得分:0)
最后我找到了解决方案。我为以下类添加了复制构造函数
ServersList,Host,Server,InfoList,AbcInformation