我们可以将泛型作为网络方法参数吗?例如 在界面中
@WebResult(name = "genericTest")
@WebMethod
public <T extends GenParent> String testGeneric(T t);
在 impl中:
@Override
@POST
@Path("/generic")
@Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN })
@Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN })
public <T extends GenParent> String testGeneric(T t) {
return t.getClass().getSimpleName();
}
这些示例类是:
import java.io.Serializable;
public class GenParent implements Serializable {
private static final long serialVersionUID = 6189314185893149450L;
private String a;
private String b;
// getter and setter
}
public class GenChild extends GenParent {
private static final long serialVersionUID = -7802747637373336039L;
private String c;
//getter and setter
}
所以当我调用这个 web-method 时,我会传递与 GenChild 等效的 Xml。
可能吗?