框架經常干的事,
根據方法簽名得知數據的類型,然后轉換成相應的對象,填充進去。
package com.itcast.day2;import java.lang.reflect.Method;import java.lang.reflect.ParameterizedType;import java.lang.reflect.Type;import java.util.ArrayList;import java.util.Collection;import java.util.Date;import java.util.Vector;import com.itcast.day1.ReflectPoint;public class GenericExc { public static void main(String[] args) throws Exception{ Method applyMethod=GenericExc.class.getMethod("applyVector", Vector.class); //Type 是 Java 編程語言中所有類型的公共高級接口。它們包括原始類型、參數化類型、數組類型、類型變量和基本類型。 Type[] types=applyMethod.getGenericParameterTypes(); ParameterizedType pType= (ParameterizedType)types[0];//ParameterizedType是Type的子接口 System.out.PRintln(pType.getRawType());//得到原始類型 System.out.println(pType.getActualTypeArguments()[0]);//得到實際類型 //applyVector(Vector v)時, java.lang.Class
//applyVector(Vector<Date> v) sun.reflect.generics.reflectiveObjects.ParameterizedTypeImpl System.out.println(types[0].getClass()); //jdk1.8以后有了簡便的方法直接得到了 java.util.Vector<java.util.Date> System.out.println(types[0].getTypeName()); } public void applyVector(Vector<Date> v){ }}
新聞熱點
疑難解答