如何使代码块通用?

时间:2013-03-21 08:54:41

标签: java xstream

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.class是硬编码的值。

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

如何使这个方法更通用,以便我可以将此方法用于多个类..

2 个答案:

答案 0 :(得分: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);

答案 1 :(得分:1)

这样就可以了:

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

我希望它有所帮助!