XStream を使用して XML をドメイン オブジェクトに変換していますが、問題が発生しました。いくつかの詳細を省略すると、XML は次のようになります。
<airport>
<flights>
<flight>.....</flight>
<flight>.....</flight>
<flight>.....</flight>
</flights>
</airport>
0 から N 個flight
の要素を指定できます。飛行要素自体には他の要素が含まれています。空港、フライト、およびフライトのクラスを作成し、それらを xstream.alias 関数に登録しました。
xstream = new XStream();
xstream.alias("airport", AirportPojo.class);
xstream.alias("flights", FlightsPojo.class);
xstream.alias("flight", FlightPojo.class);
xstream.useAttributeFor(AirportPojo.class, "flights");
xstream.addImplicitCollection(FlightsPojo.class, "flights", FlightPojo.class);
AirportPojo airportPojo = (AirportPojo) xstream.fromXML(xml);
したがって、変換後、これは FlightPojo オブジェクトのコレクションを含む、FlightsPojo オブジェクトを含む AirportPojo オブジェクトを取得します。ただし、飛行要素が0個の場合、FlightPojosのコレクションはnull
. 私はリストが初期化されることを期待します(そしてそれを好みます)が、その中に要素がありません。どうすればこれを達成できますか? これはレガシー プロジェクトであるため、注釈を使用できないことに注意してください。