?? generictest.java
字號:
import java.lang.reflect.*;
import java.util.*;
/**
* Description:
* <br/>Copyright (C), 2008-2010, Yeeku.H.Lee
* <br/>This program is protected by copyright laws.
* <br/>Program Name:
* <br/>Date:
* @author Yeeku.H.Lee kongyeeku@163.com
* @version 1.0
*/
public class GenericTest
{
private Map<String , Integer> score;
public static void main(String[] args)
throws Exception
{
Class<GenericTest> clazz = GenericTest.class;
Field f = clazz.getDeclaredField("score");
//直接使用getType()取出Field類型只對普通類型的Field有效
Class<?> a = f.getType();
System.out.println("score的類型是:" + a);
//獲得Field實例f的泛型類型
Type gType = f.getGenericType();
//如果gType類型是ParameterizedType對象
if(gType instanceof ParameterizedType)
{
//強制類型轉換
ParameterizedType pType = (ParameterizedType)gType;
//獲取原來類型
Type rType = pType.getRawType();
System.out.println("原始類型是:" + rType);
//取得泛型類型的泛型參數
Type[] tArgs = pType.getActualTypeArguments();
System.out.println("泛型類型是:");
for (int i = 0; i < tArgs.length; i++)
{
System.out.println("第" + i + "個泛型類型是:" + tArgs[i]);
}
}
else
{
System.out.println("獲取泛型類型出錯!");
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -