属性名称以单字符和下划线开头时,无法使用BeanUtilsBean设置属性

时间:2020-08-12 12:10:37

标签: java apache-commons-beanutils

我正在使用apache commons BeanUtilsBean在我的java bean上设置属性。我的媒体资源名称以字符开头,然后下划线,例如D_ABC_XYZ_。下面是示例代码

public class Test{

    private String D_ABC_XYZ_;

    public String getD_ABC_XYZ_() {
        return D_ABC_XYZ_;
    }

    public void setD_ABC_XYZ_(String d_ABC_XYZ_) {
        D_ABC_XYZ_ = d_ABC_XYZ_;
    }
}

然后在我的主要班级的某个地方,我使用下面的代码。

HashMap map1 =新的HashMap <>(); map1.put(“ D_ABC_XYZ_”,“ 1.12345”);

Test bean = new Test(); BeanUtilsBean beanUtilsBean =新BeanUtilsBean(myCustomConverters(),新PropertyUtilsBean()); beanUtilsBean.populate(bean,map1);

在完成上述步骤后,我希望在属性中设置值1.12345。但这还没有定下来。但是,如果我将属性的名称更改为DT_ABC_XYZ_,那么它将正确设置。调试后,我观察到 在bean内省期间,该属性的键被计算为d_ABC_XYZ_而不是D_ABC_XYZ,因此不会调用setter。

有人可以在这里帮助我吗?由于某些限制,我无法更改属性名称。

0 个答案:

没有答案