zoukankan      html  css  js  c++  java
  • ParameterizedType 使用方法

    ParameterizedType 它是jdk提供的参数化类型,包括了如下

    请求参数,和响应参数都是 参数话类型。记住凡是含有<T>中的都是参数话类型。

    public static <T,U> void applyMethod(Map.Entry<T,U> mapEntry){
    
    }

    ParameterizedType  里的三个方法解释

    Type getOwnerType(); 如果这个类是某个类的内部类,则拥有者就为某个类  Map.Entry<T,U> mapEntry  Map为 ownerType,Entry为 rawType, T,U 为实际类

    Type getRawType();  标识原始类,如Response<Person> list的实现类,Response.class即为原始类型,

    Type[] getActualTypeArguments() 包装类里的泛型,如Response<Person> Person.class 一般类反省类。

    一般 要自己写一个ParameterizedType 的实现类(如果有现成的则可以不用自己实现),然后给json 转为对象,来使用

    下面实例中的红色部分,为spring web MappingJackson2HttpMessageConverter 中的实现。

            Person person=new Person();
            person.setName("zhou");
            person.setAddress("zhou");
            person.setSex(1);
            List<Person> list= Lists.newArrayList(person,person);
            ObjectMapper objectMapper=new ObjectMapper();
            String listString=objectMapper.writeValueAsString(list);
            System.out.println(listString);
            //JavaType javaType=objectMapper.getTypeFactory().constructParametrizedType(ArrayList.class, ArrayList.class, Person.class);
            ParameterizedTypeImpl parameterizedTypeImpl=new ParameterizedTypeImpl(null, ArrayList.class, Person.class);
            JavaType javaType=objectMapper.getTypeFactory().constructType(parameterizedTypeImpl);
            List<Person> list1=objectMapper.readValue(listString, javaType);
            for (Person person2 : list1) {
                System.out.println(person2);
            }
  • 相关阅读:
    selenium 定位元素的基本方法(6)
    selenium ,先了解html 基础知识(5)
    第 39 章 ThinkPHP--SQL 连贯操作
    第 39 章 ThinkPHP--模型初步(下)
    第 39 章 ThinkPHP--模型初步
    第 39 章 ThinkPHP--模块化和 URL 模式
    CSS属性编写顺序
    Ajax_使用jQuery 实现Ajax
    Ajax_数据格式三大类
    Ajax_使用XMLHttpRequest实现
  • 原文地址:https://www.cnblogs.com/z-test/p/9350613.html
Copyright © 2011-2022 走看看