0条评论
还没有人评论过~
类似应用场景:
例如 json反序列化的方法是这样的:
public static <T> T fromJson(String json, Class<T> classOfT)
泛型类是这样的
public class ReqBody<T> {
private T parameter;
/**
* 使用json反序列化赋值 ,这里怎么能用这个方法?
*/
pub ReqBody(string json){
parameter = fromJson(json, ???);
}
}
上面类的内部如何使用Class<T>?或者有什么类似的方法实现?
改写一下,把Class传进去:
public class ReqBody<T> {
private Class<T> clzz;
/**
* 使用json反序列化赋值 ,这里怎么能用这个方法?
*/
public ReqBody(String json,Class<T> clzz){
this.clzz = clzz;
T obj = (T) JSONObject.parseObject(json,clzz);
System.out.println(obj);
}
public static void main(String[] args) {
ReqBody<Parameter> reqBody = new ReqBody<>("{\"path\":\"The path param\"}",Parameter.class);
}
}
class Parameter {
private String path;
public String getPath() {
return path;
}
public void setPath(String path) {
this.path = path;
}
@Override
public String toString() {
return "Parameter{" +
"path='" + path + '\'' +
'}';
}
}
输出:
Parameter{path='The path param'}
列如: object.class
obj = fromJson(json, parameter.getClass());