1

この XML コンバーターを使用していますが、各オブジェクトのプロパティをラップするオブジェクト ヘッダーを取得していません。これを行うためのメソッドがエンコーダー クラスにも見つかりません。

コードは配列を反復処理し、null でないすべてのオブジェクトを一覧表示します。

FileOutputStream os = new FileOutputStream("C:\\Users\\David Laptop\\Documents\\Doc1.xml");
XMLEncoder encoder = new XMLEncoder(os);
for( int x = 0; x < people.length;x++)
  if (people[x] != null)
  {
    //header here?
    encoder.writeObject(people[x].getName());
    encoder.writeObject(people[x].getTelephoneNumber());
    encoder.writeObject(people[x].getEmailAddress());    
  }
}
encoder.close(); 

私はこの結果を得ます:

<?xml version="1.0" encoding="UTF-8" ?> 
<java version="1.7.0_40" class="java.beans.XMLDecoder">
string
dad</string  string 35235 /string 
string email /string
</java>

より多くのオブジェクトエントリを実行すると、実装したい別の関数がXMLファイルから配列に読み込まれるため、役に立たない大きなリストになります...それに関するヘルプも役に立ちます!

編集:与えられた答えに基づく新しい情報:

では、引数なしのコンストラクターなしでこれを実現する方法はありませんか? 適切な測定のために両方のクラスに Serializable を実装しました...次の行を使用して新しいオブジェクトを追加しています。

mybook1.addRecord(new newPerson(Name,telephoneNumber,emailAddress));  

これを使用します:

public void addRecord(newPerson c) 
{
    people[numOfRecords] = c; 
    numOfRecords++;  
}                                                               

以下はオブジェクト自体です。

public class newPerson implements java.io.Serializable 
{     

private String Name; 
private String telephoneNumber; 
private String emailAddress;  

public newPerson(String n, String t, String e) 
{ //local variables n,t,e only used in this method
    Name = n;
    telephoneNumber = t;
    emailAddress = e;
}

助言がありますか?

4

1 に答える 1