猿问

java 泛型类的方法如何使用Class<T>

类似应用场景:


例如 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>?或者有什么类似的方法实现?


宝慕林4294392
浏览 2320回答 3
3回答

慕姐8265434

改写一下,把Class传进去:public class ReqBody<T> {private Class<T> clzz;/**&nbsp;* 使用json反序列化赋值 ,这里怎么能用这个方法?&nbsp;*/public ReqBody(String json,Class<T> clzz){&nbsp; &nbsp; this.clzz = clzz;&nbsp; &nbsp; T obj = (T) JSONObject.parseObject(json,clzz);&nbsp; &nbsp; System.out.println(obj);}public static void main(String[] args) {&nbsp; &nbsp;ReqBody<Parameter> reqBody = new ReqBody<>("{\"path\":\"The path param\"}",Parameter.class);}}class Parameter {private String path;public String getPath() {&nbsp; &nbsp; return path;}public void setPath(String path) {&nbsp; &nbsp; this.path = path;}@Overridepublic String toString() {&nbsp; &nbsp; return "Parameter{" +&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "path='" + path + '\'' +&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; '}';}}输出:Parameter{path='The path param'}

慕尼黑5688855

列如: object.class

动漫人物

obj = fromJson(json, parameter.getClass());
随时随地看视频慕课网APP

相关分类

Java
我要回答