有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java从对象中检索bean属性值

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

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

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

我怎么能在不检查propertyname的情况下退休

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


共 (2) 个答案

  1. # 1 楼答案

    我不确定您想要完成什么,但您可以使用反射来完成类似的操作:

    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,那么这是另一个主题,您必须使用反射来调用方法

  2. # 2 楼答案

    这个怎么样

    不动产。getSimpleProperty

    阿帕奇公地。小海狸