我正在使用 XStream 将 XML 转换为域对象,并且遇到了问题。省略一些细节,XML 看起来像这样:
<airport>
<flights>
<flight>.....</flight>
<flight>.....</flight>
<flight>.....</flight>
</flights>
</airport>
可以有 0 到 Nflight
个元素。飞行元素本身包含其他元素。我为机场、航班和航班创建了类,并使用 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 对象的 AirportPojo 对象,其中包含 FlightPojo 对象的集合。但是,当有 0 个飞行元素时,FlightPojos 的集合似乎是null
. 我希望(并且更喜欢)列表被初始化但其中包含零个元素。我怎么能做到这一点?请记住,我不能使用注释,因为这是一个遗留项目。