/** * 获取对象中的字段 * @param obj which object you want to find filed * @param fieldName the field name you want to find * @return the field you want to find * @throws Throwable * @throws NoSuchFieldException */ protected Field getField(Object obj,String fieldName) throws NoSuchFieldException { Class clzz = obj.getClass(); Field[] fields = clzz.getDeclaredFields(); Field dest = null; while (!hasField(fields,fieldName) && !clzz.getName().equalsIgnoreCase("java.lang.Object")) { clzz = clzz.getSuperclass(); fields = clzz.getDeclaredFields(); } if (hasField(fields,fieldName)) { dest = clzz.getDeclaredField(fieldName); } else { throw new NoSuchFieldException("类中没有此字段"); } return dest; } /** * 判断对象中是否有要找的字段 * @param fields the fields which you want to find * @param fieldName the field name you want to find * @return if the field in field return true else return false */ private boolean hasField(Field[] fields, String fieldName) { for (int i = 0; i < fields.length ;i ++) { if (fields[i].getName().equals(fieldName)) { return true; } } return false; }
java递归查找类中的字段(私有和父类中的字段)
原创
©著作权归作者所有:来自51CTO博客作者livvyguo的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:递归和线性迭代
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
java根据表名称获取所有字段
java根据表名称获取所有字段
字段 java sql -
Java反序列化-反射
java反序列化之-反射
java 反序列化 web安全