Java+反射1+获取属性/成员变量 的名称及类型
Posted 淡怀
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java+反射1+获取属性/成员变量 的名称及类型相关的知识,希望对你有一定的参考价值。
封装的方法(可直接用)
1 /** 2 * 功能:通过反射获取指定类的属性名称及属性类型 3 * 4 * @param clazz 目标类 5 * @return 返回一个属性类型及属性名称(左:类型 右:名称) 6 */ 7 static public List<Pair<Object, Object>> getClassFielddNameAndType(Class clazz) { 8 Field[] fields = clazz.getDeclaredFields(); 9 List<Pair<Object, Object>> ofField = new ArrayList<>(); 10 for (Field field : fields) { 11 String[] str = field.getType().getName().split("\\\\."); 12 System.out.println(String.format("属性:%s %s", str[str.length - 1], field.getName())); 13 ofField.add(Pair.of(str[str.length - 1], field.getName())); 14 } 15 return ofField; 16 }
1、目标类
2、获取目标群类中的属性及属性的类型
3、代码
1 @Test 2 public void testInterfaceParam() { 3 List<Pair<Object, Object>> ofFields = getClassFielddNameAndType(FileCircleRequest.class); 4 for (int i = 0; i < ofFields.size(); i++) { 5 System.out.println(String.format("%s %s", ofFields.get(i).getLeft(),ofFields.get(i).getRight())); 6 } 7 } 8 9 /** 10 * 功能:通过反射获取指定类的属性名称及属性类型 11 * 12 * @param clazz 13 */ 14 static public List<Pair<Object,Object>> getClassFielddNameAndType(Class clazz) { 15 Field[] fields = clazz.getDeclaredFields(); 16 List<Pair<Object,Object>> ofField = new ArrayList<>(); 17 for (Field field : fields) { 18 String[] str = field.getType().getName().split("\\\\."); 19 System.out.println(String.format("属性:%s %s", str[str.length - 1], field.getName())); 20 ofField.add(Pair.of(str[str.length-1],field.getName())); 21 } 22 23 return ofField; 24 }
以上是关于Java+反射1+获取属性/成员变量 的名称及类型的主要内容,如果未能解决你的问题,请参考以下文章