您好,登錄后才能下訂單哦!
public class emm {
public void test01(Map<String,User>map,List<User>list)
{
System.out.println("test01");
}
public Map<String,User> test02()
{
System.out.println("test02");
return null;
}
public static void main(String[] args) {
try {
Method m=emm.class.getMethod("test01", Map.class,List.class); //反射方法
Type[] t=m.getGenericParameterTypes(); //獲得帶泛型的參數類型,返回的是type類型的數組
for(Type paramType:t)
{
System.out.println("#"+paramType);
if(paramType instanceof ParameterizedType) { //判斷是不是一個規范化參數類型
//如果是強制轉為規范化帶泛型的參數類型,因為可能有多個泛型類型,所以用數組
Type[] genericTypes=((ParameterizedType) paramType).getActualTypeArguments();//獲得真正的泛型的類型,String、User
for(Type genericType:genericTypes)
{
System.out.println("泛型類型"+genericType);
}
}
}
Method m2=emm.class.getMethod("test02", null);
Type returnType=m2.getGenericReturnType(); //獲得帶泛型的返回類型
if(returnType instanceof ParameterizedType) //判斷是不是規范化的帶泛型的返回類型
{
//強制轉換成規范化的帶泛型的參數類型
Type[] genericTypes=((ParameterizedType)returnType).getActualTypeArguments();
for(Type genericType:genericTypes)
{
System.out.println("返回值泛型類型"+genericType);
}
}
}catch(Exception e)
{
e.printStackTrace();
}
}
}
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。