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

反射获取泛型类型

作者: _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