我如何使通用代码块?
问题描述:
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);
答
这将做到这一点:
public <T> T marshall(String xml, Class<T> type) {
XStream xstream = new XStream();
xstream.alias(type.getSimpleName(), type);
return (T) xstream.fromXML(xml);
}
我希望它有帮助!
谢谢....我尝试用clazz作为字符串...我有包名称的问题。我想使它简单.. Class.forName('clazz')。getClass() 您的答案是简单和更好的解决方案.. – Shashi 2013-03-21 09:34:24