有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何使代码块通用?

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

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

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

第三行:

“项目”和项目。类是硬编码的值

如果我必须marshall Order xml,那么我必须编写一个新方法,或者如果需要的话 实现

如何使此方法更通用,以便可以对多个类使用此方法


共 (2) 个答案

  1. # 1 楼答案

    像这样的事情可以做到:

    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);
    
  2. # 2 楼答案

    这可以做到:

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

    我希望有帮助