hoge66的专栏

-----------------------看到专栏,偷着笑!
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

反射获取list属性里的类名

Posted on 2017-03-08 17:03  hehoge  阅读(615)  评论(0编辑  收藏  举报
List<Field> fieldList=new ArrayList<Field>();
        for (Class<?> superClass = object.getClass(); superClass != Object.class; 
				superClass = superClass.getSuperclass()) {
        	
				Field[] fields  = superClass.getDeclaredFields();
				for (Field field : fields) {
					Class<?> fc = field.getType();
					if(fc.isPrimitive()){
						System.out.println("基本数据类型: " + field.getName() + "  " + fc.getName());
					}else{
						if(fc.isAssignableFrom(List.class)){ //判断是否为List
							System.out.println("List类型:" + field.getName());
							java.lang.reflect.Type gt = field.getGenericType();	//得到泛型类型
							ParameterizedType pt = (ParameterizedType)gt;
							Class<?> listClazz = (Class<?>)pt.getActualTypeArguments()[0];
							System.out.println("\t\t" + listClazz.getName());
						}
					}
					fieldList.add(field);
				}
		}

 反射获取list属性里的类名