美文网首页
反射获取泛型类型

反射获取泛型类型

作者: _npc_ | 来源:发表于2017-10-17 14:45 被阅读0次
    
    import java.lang.reflect.ParameterizedType;
    import java.lang.reflect.Type;
    import java.util.Arrays;
    
    /**
     * 描述:反射获取泛型类型
     *
     * @author chen_q_i@163.com
     * 2017/10/17 : 11:55.
     * @version : 1.0
     */
    
    class A<T,S> {
    
    }
    
    interface C<K,V>{
    
    }
    class B extends A<String,String>implements C<String,Porsen> {
    
    }
    
    public class NewTest {
        public static void main(String[] args) {
    
    
    //        super
            ParameterizedType parameterizedType = (ParameterizedType) B.class.getGenericSuperclass();
            Type[] actualTypeArguments = parameterizedType.getActualTypeArguments();
            Arrays.stream(actualTypeArguments).forEach(System.out::println);
    //        interface
            ParameterizedType parameterizedType1 = (ParameterizedType) B.class.getGenericInterfaces()[0];
            Type[] actualTypeArguments1 = parameterizedType1.getActualTypeArguments();
            Arrays.stream(actualTypeArguments1).forEach(interfaceType -> System.out.println("interfaceReflectType : "+interfaceType));
        }
    
    }
    
    
    
    image.png

    参考:步步理解 JAVA 泛型编程(一)

    相关文章

      网友评论

          本文标题:反射获取泛型类型

          本文链接:https://www.haomeiwen.com/subject/aijduxtx.html