`

Java通过反射得到其属性的值包含父类属性

阅读更多
public class ObjectUtils {

    private static final Logger LOG = LoggerFactory.getLogger(ObjectUtils.class);

    /**
     * 反射取得bean中对应属性的值
     * @param bean
     * @param fieldName
     * @return
     */
    public static Object getProperty(Object bean, String fieldName) {
        Object obj = getProperty(bean.getClass(),bean,fieldName);
        return obj;
    }

    private static Object getProperty(Class _class,Object bean,String fieldName){
        Object obj = null;
        Field[] fields = _class.getDeclaredFields();
        Field.setAccessible(fields, true);
        for (int i = 0; i < fields.length; i++) {
            Field field = fields[i];
            if (fieldName.equals(field.getName())) {
                try {
                    obj = field.get(bean);
                } catch (IllegalArgumentException e) {
                    LOG.error(e.getMessage());
                } catch (IllegalAccessException e) {
                    LOG.error(e.getMessage());
                }
                break;
            }
        }
        if(obj == null && _class.getGenericSuperclass()!=null){
            obj = getProperty(_class.getSuperclass(), bean, fieldName);
        }
        return obj;
    }
}

分享到:
评论

相关推荐

    java反射获取所有属性,获取所有get方法,包括子类父类

    java反射获取所有属性,获取所有get方法,包括子类父类,以及包括List集合类

    基础深化和提高-java反射技术

    Java反射技术指的是在运行时动态地获取类的信息、调用对象的方法、操作类的属性等能力。通过反射,程序可以在运行时检查类、实例化对象、调用方法、获取和设置属性,甚至可以动态修改类的结构。 Java反射技术的核心...

    Java开发技术大全(500个源代码).

    listFields.java 利用反射机制获取成员属性列表 listMethods.java 利用反射机制获取成员方法列表 loadClass.java 动态装载一个类 Shape.java 一个用于测试的简单类 useArray1.java 用反射机制使用数组示例1 ...

    java编程常见问题

    33.java.lang.OutOfMemoryError 内存不足错误。当可用内存不足以让Java...当应用试图通过反射方式创建某个类的实例、访问该类属性、调用该类方法,而当时又无法访问类的、属性的、方法的或构造方法的定义时抛出该异常。

    JAVA面试题最全集

    一个“.java”原文件中是否可以包括多个类(不是内部类)? 53.掌握内部类和接口的概念 54.StringTokenizer类的使用 55.数据结构,如何遍历List中的元素? 如果要按照键值保存或者访问数据,使用什么数据结构? ...

    疯狂JAVA讲义

    第1章 Java概述 1 1.1 Java语言的发展简史 2 1.2 Java的竞争对手及各自优势 4 1.2.1 C#简介和优势 4 1.2.2 Ruby简介和优势 4 1.2.3 Python的简介和优势 5 1.3 Java程序运行机制 5 1.3.1 高级语言的运行机制 6...

    \java超强笔记(超级经典)

    java.util.concurrent.atomic 包含了不用加锁情况下就能改变值的原子变量。 java.util.concurrent.locks 包含锁定的工具。 Executor接口: 替代了Thread类,他可以创建定量的、动态的以及周期性的线程池...

    整理后java开发全套达内学习笔记(含练习)

    Reflection [java] 反射 [ri'flekʃәn] script n.手写体,小型程序 [skript] serialized vt.序列化,串行化 ['siәriәlaiz]'(serializable adj.)(deserialize反序列化,反串行化) Socket [java] 网络套接字['sɒkit...

    Java-Null-pointer-checker:输入对象不再导致 java 空指针异常

    使用 Java 反射,我们构造了包含所有字段的对象图(如果类扩展了父类,则继承)。 我们使用深度优先搜索遍历,应用模板和访问者设计模式,我们定义在访问每个不同类型的属性(对象图的节点)时要执行的特定操作。 ...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    本书是第II卷,以开发人员在项目开发中经常遇到的问题和必须掌握的技术为中心,介绍了应用Java进行桌面程序开发各个方面的知识和技巧,主要包括Java语法与面向对象技术、Java高级应用、窗体与控件应用、文件操作...

    Java开发技术大全 电子版

    12.3.3使用反射在运行时获得注释380 12.3.4AnnotatedElement接口383 12.3.5使用默认值383 12.3.6标记注释384 12.3.7单成员注释385 12.3.8内置注释386 12.3.9使用注释的一些限制390 12.4本章小结390 第13章...

    鹦鹉:像鹦鹉一样学习Java;

    鹦鹉java基础练习逻辑书名:java编程的逻辑反映:21章-反射注释:22章-注解内置注解: @Override :不写不改变方法重新的本质@Deprecated :Java9多了因为,forRemoval属性@SuppressWarning框架和库的注解:自定义...

    Java学习笔记-个人整理的

    {2.4}父类对象的方法调用}{51}{section.2.4} {2.5}封装}{52}{section.2.5} {2.6}多态}{53}{section.2.6} {2.7}Sample code}{54}{section.2.7} {2.8}框架中移动的小球}{59}{section.2.8} {2.9}抽象与接口}{59}{...

    Scala程序设计(第2版)

    20.3 包含解析组合子的外部DSL 410 20.3.1 关于解析组合子 410 20.3.2 计算工资单的外部DSL 410 20.4 内部DSL与外部DSL:最后的思考 413 20.5 本章回顾与下一章提要 413 第21章 Scala工具和库 414 ...

    net学习笔记及其他代码应用

    多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽象的,没有一个有程序体。接口只可以定义static final成员变量。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它...

Global site tag (gtag.js) - Google Analytics