加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

java 反射 , 判断Class是否是某个类的子类或父类

(2016-01-28 14:32:13)
分类: java

java 反射 , 判断Class是否是某个类的子类或父类


Class c = ArrayList.class;

c.isPrimitive(); //判断c是否为基本数据类型

c.isAssignableFrom(List.class);  //判断c是否是List类的子类或父类

c.getGenericType(); //得到泛型类型


实例:通过反射得到List 集合中的泛型类型

  1. package com.zf.target;  
  2.   
  3. import java.lang.reflect.Field;  
  4. import java.lang.reflect.ParameterizedType;  
  5. import java.lang.reflect.Type;  
  6. import java.util.List;  
  7. import java.util.Map;  
  8.   
  9. class T{  
  10.     List  a;  
  11.     List  b;  
  12. //  List ;  
  13.     Map map  
  14.     int c;  
  15.  
  16.   
  17. class {}  
  18. class B{}  
  19.   
  20. public class Test9{  
  21.   
  22.     public static void main(String[] args)  
  23.         Class tc T.class 
  24.         Field[] fields tc.getDeclaredFields();  
  25.         for (Field fields)  
  26.             Class fc f.getType();  
  27.             if(fc.isPrimitive()){  
  28.                 System.out.println("基本数据类型: " f.getName()  " fc.getName());  
  29.             }else 
  30.                 if(fc.isAssignableFrom(List.class)){ //判断是否为List  
  31.                     System.out.println("List类型:" f.getName());  
  32.                     Type gt f.getGenericType();   //得到泛型类型  
  33.                     ParameterizedType pt (ParameterizedType)gt;  
  34.                     Class lll (Class)pt.getActualTypeArguments()[0];  
  35.                     System.out.println("\t\t" lll.getName());  
  36.                  
  37.              
  38.          
  39.      
  40.       

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有