加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java Bean,BeanUtils和布尔包装类

发布时间:2020-12-15 00:06:18 所属栏目:Java 来源:网络整理
导读:我使用BeanUtils来操纵通过JAXB创建的 Java对象,我遇到了一个有趣的问题.有时,JAXB会创建一个这样的Java对象: public class Bean { protected Boolean happy; public Boolean isHappy() { return happy; } public void setHappy(Boolean happy) { this.happ
我使用BeanUtils来操纵通过JAXB创建的 Java对象,我遇到了一个有趣的问题.有时,JAXB会创建一个这样的Java对象:
public class Bean {
    protected Boolean happy;

    public Boolean isHappy() {
        return happy;
    }

    public void setHappy(Boolean happy) {
        this.happy = happy;
    }
}

以下代码工作正常:

Bean bean = new Bean();
BeanUtils.setProperty(bean,"happy",true);

然而,试图获得幸福的财产如此:

Bean bean = new Bean();
BeanUtils.getProperty(bean,"happy");

造成此例外:

Exception in thread "main" java.lang.NoSuchMethodException: Property 'happy' has no getter method in class 'class Bean'

将所有内容更改为原始布尔允许set和get调用都可以工作.然而,我没有这个选项,因为这些是生成的类.我认为这是因为Java Bean库只考虑一个是< name>如果返回类型是一个原始布尔值,而不是包装器类型Boolean,则表示一个属性的方法.有没有人有关于如何通过BeanUtils访问这样的属性的建议?有没有一些可以使用的解决方法?

解决方法

最后我发现法律确认:

8.3.2 Boolean properties

In addition,for boolean properties,we allow a getter method to match the pattern:

public boolean is<PropertyName>();

从JavaBeans规范.你确定你没有遇到JAXB-131错误吗?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读