[英]How to use constants in XML for XStream
請問,如何在XML中定義類似Integer.MAX_VALUE的java常量? 我知道如何使用枚舉,但我有第三方庫,必須使用常量操作。 例如在xml文件中存在一些值,我想在生成的java類中應該聲明為常量。
XML:
<person>
<firstname>Joe</firstname>
<lastname>Walnes</lastname>
<phone>
<code>123</code>
<number>1234-456</number>
</phone>
<fax>
<code>123</code>
<number>9999-999</number>
</fax>
</person>
Java的:
public class Person {
private String firstname;
private String lastname;
private PhoneNumber phone;
private PhoneNumber fax;
// ... constructors and methods
}
public class PhoneNumber {
private int code;
private String number;
// ... constructors and methods
}
這有效。 但應該是這樣的:
XML:
<person>
<firstname>Joe</firstname>
<lastname>Walnes</lastname>
<phone>
**<const>**PnoneNumber.LOCAL**</const>**
</phone>
<fax>
<code>123</code>
<number>9999-999</number>
</fax>
</person>
Java應該是:
public class Person {
private String firstname;
private String lastname;
private PhoneNumber phone;
private PhoneNumber fax;
// ... constructors and methods
}
public class PhoneNumber {
public static final PnoneNumber LOCAL=new PhoneNumber(123,"1234-456");
private int code;
private String number;
// ... constructors and methods
}
我可以輕松地完成這項工作並且沒有自定義轉換器嗎?
非常感謝。
我已經研究了幾個XML-POJO生成器,特別是那些使用XML Schema(XSD)來定義類的生成器,令我驚訝的是,沒有提供修改屬性的能力。
如果您想保留當前的解決方案,我認為最簡潔的方法是通過您自己的自定義轉換器來擴展轉換,就像您自己說的那樣。
如果您使用的是使用XML Schema的東西,您可以始終使用屬性fixed="constant"
作為標准初始化,但當然它不會保留語義。
但是,以另一種方式解決這個問題可能會更好。 這些是常量,它們不應該改變,所以也許最好將它們定義在一個單獨的文件中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.