Допустим, у вас есть класс Coin с атрибутом типа следующим образом:
@XStreamAlias("coin")
public class Coin {
String type;
}
И у вас есть класс Coins, который содержит список монет:
@XStreamAlias("coins")
public class Coins{
@XStreamImplicit
List<Coin> coins = new ArrayList<Coin>();
}
Payвнимание на аннотации.Список неявный, и класс Coins будет показан как «монеты».
Вывод будет:
<coins>
<coin>
<type>Gold</type>
</coin>
<coin>
<type>Silver</type>
</coin>
<coin>
<type>Bronze</type>
</coin>
</coins>
Это не то, что вы просили, но есть причина.
Сначала у монеты есть только один атрибут, но мы не уверены, что все объекты, которые вы хотите показать, имеют только один атрибут.Итак, нам нужно указать, о каком атрибуте объекта мы говорим.
Вы также можете показывать атрибуты монет как атрибуты XML, а не поля.Следующее:
@XStreamAlias("coin")
public class Coin {
@XStreamAsAttribute
String type;
Coin(String type) {
this.type = type;
}
}
Вот вывод:
<coins>
<coin type="Gold"/>
<coin type="Silver"/>
<coin type="Bronze"/>
</coins>
Надеюсь, это поможет.