我如何使通用代码块?

问题描述:

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

如果我必须马歇尔订购xml,那么我必须写一个新的方法或如果 - 否则条件 来实现。

我怎样才能使这种方法更加通用,这样我可以使用多类此方法..

像这样的事情会做的事:

​​

调用此方法:

Item info = marshallItem("yourXml", Item.class); 
+0

谢谢....我尝试用clazz作为字符串...我有包名称的问题。我想使它简单.. Class.forName('clazz')。getClass() 您的答案是简单和更好的解决方案.. – Shashi 2013-03-21 09:34:24

这将做到这一点:

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

我希望它有帮助!