3
public Item marshallItem(String xml) {
    // TODO Auto-generated method stub
    XStream xstream = new XStream();

    xstream.alias("Item", Item.class);

    return (Item) xstream.fromXML(xml);
}

第 3 行:

"Item" 和 Item.class 是硬编码的值。

如果我必须编组 Order xml,那么我必须编写一个新方法或 if-else 条件来实现。

我怎样才能使这个方法更通用,以便我可以将此方法用于多个类..

4

2 回答 2

4

这样的事情会做的事情:

public <T> T marshallItem(String xml, Class<T> clazz) {
    XStream xstream = new XStream();
    xstream.alias(clazz.getSimpleName(), clazz);
    return (T) xstream.fromXML(xml);
}

调用此方法:

Item info = marshallItem("yourXml", Item.class);
于 2013-03-21T08:59:12.293 回答
1

这会做到:

public <T> T marshall(String xml, Class<T> type) {
    XStream xstream = new XStream();
    xstream.alias(type.getSimpleName(), type);
    return (T) xstream.fromXML(xml);
}

我希望它有帮助!

于 2013-03-21T09:03:07.230 回答