zoukankan      html  css  js  c++  java
  • java 反射取得方法入参类型的泛形

    package TestReflectClass;
    
    import java.util.List;
    
    /**
     * Created by wangyang on 2016/12/16.
     */
    public class Person {
        public void get(List<A> list){
            
        }
    }
    class A{}
    package TestReflectClass;
    
    import java.lang.reflect.Method;
    import java.lang.reflect.ParameterizedType;
    import java.lang.reflect.Type;
    import java.util.List;
    
    /**
     * Created by wangyang on 2016/12/16.
     */
    public class TestReflect {
        public static void main(String[] args) throws ClassNotFoundException, NoSuchMethodException {
            Class<?> aClass = Class.forName("TestReflectClass.Person");
            Method method = aClass.getMethod("get", List.class);
            Type[] genericParameterTypes = method.getGenericParameterTypes();
            for(Type genericParameterType : genericParameterTypes){
                if(genericParameterType instanceof ParameterizedType){
                    ParameterizedType aType = (ParameterizedType) genericParameterType;
                    Type[] parameterArgTypes = aType.getActualTypeArguments();
                    for(Type parameterArgType : parameterArgTypes){
                        Class parameterArgClass = (Class) parameterArgType;
                        System.out.println("parameterArgClass = " + parameterArgClass);
                    }
                }
            }
        }
    }
  • 相关阅读:
    C++中const变量使用注意
    const对象调用static成员函数
    Error in startup script: value for " " missing
    check tcl version
    socket
    grid pack
    mouse bind
    gesture
    pixel
    open
  • 原文地址:https://www.cnblogs.com/wangyang108/p/6186902.html
Copyright © 2011-2022 走看看