gpt4 book ai didi

java - BeanUtils.setProperty 不适用于 boolean 值?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:56:50 26 4
gpt4 key购买 nike

我有这个简单的 Bean 类并尝试使用 BeanUtils.setProperty 设置一些值 问题是,似乎 String 工作得很好,但是当我尝试设置一个 boolean 值时它就不起作用了。我已经尝试将该字段定义为公共(public)字段,但仍然无法正常工作。有什么帮助吗?为什么这不起作用?

public class TestBean {

protected Boolean someBoolean;
protected String name;

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public boolean isSomeBoolean() {
if (someBoolean == null) {
return true;
} else {
return someBoolean;
}
}

public void setSomeBoolean(Boolean value) {
this.someBoolean = value;
}

public static void main(String[] args) {
TestBean o = new TestBean();
Boolean b = new Boolean(false);
BeanUtils.setProperty(o, "someBoolean", b);
BeanUtils.setProperty(o, "name", "A name");
System.out.println(((TestBean)o).isSomeBoolean());
// Output = true WHY?????
System.out.println(((TestBean)o).getName());
// Output = A name

BeanUtils.setProperty(o, "someBoolean", false);
BeanUtils.setProperty(o, "name", "Another name");

System.out.println(((TestBean)o).isSomeBoolean());
// Output = true WHY????
System.out.println(((TestBean)o).getName());
// Output = Another name

}

最佳答案

你需要改变它

protected Boolean someBoolean;

protected boolean someBoolean;

您将从这里获得更多信息。

Java Beans, BeanUtils, and the Boolean wrapper class

关于java - BeanUtils.setProperty 不适用于 boolean 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11332820/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com