Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从对象检索bean属性值_Java_Spring_Apache Commons Beanutils - Fatal编程技术网

Java 从对象检索bean属性值

Java 从对象检索bean属性值,java,spring,apache-commons-beanutils,Java,Spring,Apache Commons Beanutils,我的类有多个包含getter和setter的字段 在尝试访问bean属性的值时,我必须检查属性名并检索值 if(property is this ) mybean.getThisProperty() else if(property is that ) mybean.getThatProperty() else... 我怎么能在不检查propertyname的情况下退休 BeanUtils.copyProperties在Spring中,将属性从一个bean复制到

我的类有多个包含getter和setter的字段

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

if(property is this )
    mybean.getThisProperty()    
else if(property is that )    
    mybean.getThatProperty()
else...
我怎么能在不检查propertyname的情况下退休


BeanUtils.copyProperties
在Spring中,将属性从一个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的情况下从私有字段中获取“object”中的所有属性。 该行允许我们访问专用字段:

field.setAccessible(true);
此行检索名称:

String name = field.getName();
此行检索以下值:

value = field.get(object);
如果您真的想使用getter,那么这是另一个主题,您必须使用反射来调用方法。

那么

PropertyUtils.getSimpleProperty

Apaches commons.beanutils的

您可能需要查看类型和