如果getter使用“is”而不是“get”,PropertyUtils无法转换boolean

时间:2013-09-15 12:18:35

标签: java apache-commons

我正在尝试使用PropertyUtils类的copyProperties方法来复制bean。

问题是,如果布尔值的getter被写为“isXXX”,则无法复制boolean。它仅在布尔值的getter为“getXXX”时有效。例如,

class MyBean {
....
    public boolean isEnabled() {
        return enabled;
    }
....
}

PropertyUtils.copyProperties不适用于此类。但它适用于此:

class MyBean {
....
    public boolean getEnabled() {
        return enabled;
    }
....
}

有什么方法可以解决这个问题吗?

非常感谢

1 个答案:

答案 0 :(得分:4)

取决于enabled类型:

如果是boolean,那么getter必须采用以下形式:

public boolean isEnabled() {
    return enabled;
}

如果是Boolean,那么getter必须采用以下形式:

// The return type of the function doesn't matter Boolean or boolean
public Boolean getEnabled() {
    return enabled;
}