java - 从对象中检索 bean 属性值

标签 java spring apache-commons-beanutils

我的类有多个带有 getter 和 setter 的字段

在尝试访问 bean 属性的值时,我必须检查属性名称并检索值..

if(property is this )
    mybean.getThisProperty()    
else if(property is that )    
    mybean.getThatProperty()
else...

我如何在不实际检查属性(property)名称的情况下退休..

Spring中的

BeanUtils.copyProperties将属性从一个bean复制到另一个bean

最佳答案

我不确定你想要完成什么,但你可以使用反射做类似的事情:

for (Field field : object.getClass().getDeclaredFields()) {
        field.setAccessible(true);
        String name = field.getName();
        Object value;
        try {
            if (name.equals(desiredPropertyName)) {
                value = field.get(object); // Do whatever you want with the
                                            // value
            }
        } catch (IllegalArgumentException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        }

    }

在上面的代码中,我们在不使用 getter 的情况下获取“对象”中除私有(private)字段之外的所有属性。 这一行让我们可以访问私有(private)字段:

field.setAccessible(true);

此行检索名称:

String name = field.getName();

此行检索值:

value = field.get(object);

如果你真的想使用 getter,那就是另一个主题了,你必须使用反射来调用方法。

关于java - 从对象中检索 bean 属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22042249/

相关文章:

java - Spring MVC 字符集

java - 递归 BeanUtils.describe()

java - windows 和 linux 读取 FileInputStream 有什么区别?

java - window 尺寸不匹配

java - 从 JSON 字符串在 EditText 上显示 HTML

java - 为什么在 junit5 测试中 Autowiring 的 Controller 总是为空?

spring - 如何在 quartz 中 Autowiring ?

java - 如何将父bean的所有属性复制到子bean?

java - BeanUtils copyProperties API 忽略 null 和特定属性

java - GWT 如何为每个浏览器(例如浏览器)提供正确的 Javascript 代码?进行i18n和浏览器兼容?