Advertisement
Guest User

Untitled

a guest
Sep 21st, 2017
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.06 KB | None | 0 0
  1. import java.util.*;
  2. import java.lang.reflect.*;
  3.  
  4. public class GenericTest
  5. {
  6. private Map<String , Integer> score;
  7. public static void main(String[] args) throws Exception
  8. {
  9.  
  10. Class<GenericTest> clazz = GenericTest.class;
  11. Field f = clazz.getDeclaredField("score");
  12. // 直接使用getType()取出Field类型只对普通类型的Field有效
  13. Class<?> a = f.getType();
  14. // 下面将看到仅输出java.util.Map
  15. System.out.println("score的类型是:" + a);
  16. // 获得Field实例f的泛型类型
  17. Type gType = f.getGenericType();
  18. // 如果gType类型是ParameterizedType对象
  19. if(gType instanceof ParameterizedType)
  20. {
  21. // 强制类型转换
  22. ParameterizedType pType = (ParameterizedType)gType;
  23. // 获取原始类型
  24. Type rType = pType.getRawType();
  25. System.out.println("原始类型是:" + rType);
  26. // 取得泛型类型的泛型参数
  27. Type[] tArgs = pType.getActualTypeArguments();
  28. System.out.println("泛型类型是:");
  29. for (int i = 0; i < tArgs.length; i++)
  30. {
  31. System.out.println("第" + i + "个泛型类型是:" + tArgs[i]);
  32. }
  33. }
  34. }
  35. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement