簡體   English   中英

如何在XStream中使用注釋對屬性進行別名?

[英]How to alias attributes in XStream with annotations?

我有以下代碼

@XStreamAlias("Pa")
public class Pa {

    @XStreamAsAttribute
    private String ms;

    @XStreamAsAttribute
    private String co;

    @XStreamAsAttribute
    private String house;

    @XStreamAsAttribute
    private String street;

    // Getters and Setters
}

在構造XML時,我希望屬性名稱與變量名稱不同。

我知道我可以使用以下注釋對類進行處理

@XStreamAlias("ExampleClass")
private ExClass exClass;

上面的代碼將產生一個名稱為

<ExampleClass/>

但是,如果不創建單獨的標簽,就找不到更改屬性名稱的任何注釋。

我想要的是以下內容:

<Pa milliseconds="" co =""/>

但是使用

@XStreamAlias("Milliseconds")
private String ms; 

正在使用給定名稱創建新標簽。 它不再是標記的屬性。

是否存在這樣的注釋? 我只需要使用注釋即可,而無需在運行時使用Java代碼來完成。

感謝您的時間。

您應該同時使用兩個注釋:

@XStreamAlias("Pa")
public class Pa {

    @XStreamAsAttribute
    @XStreamAlias("Milliseconds")
    String ms = "test";


    public static void main(String[] args) {
        XStream xStream = new XStream();
        xStream.ignoreUnknownElements();
        xStream.processAnnotations(Pa.class);

        String xml = xStream.toXML(new Pa());
        System.out.println(xml);
    }
}

輸出:

<Pa Milliseconds="test"/>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM