-1
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ファイルを解析し、S​​erversListクラスの配列を作成しています。例えば、

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の最後の要素である可能性があります)。デバッグ中、すべての反復ですべての行の値が現在の行の値に変更されることを理解しています。これに対する解決策を提案できますか?

4

2 に答える 2

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());
        }
    }
于 2013-03-19T06:47:06.063 に答える
0

ついに私は解決策を見つけました。次のクラスのコピーコンストラクターを追加しました

ServersList、Host、Server、InfoList、AbcInformation

于 2013-03-21T10:02:39.773 に答える