我是靠谱客的博主 笑点低仙人掌,最近开发中收集的这篇文章主要介绍JavaBean中布尔类型使用注意,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

javaBean中,要设置或获取某个property的值,就需要相应的get和set方法,对于primitive和自定义类类型的属性(如:property),getter和setter方法就是getProperty和setProperty(第一个字母变大写,前面再加get或set)。对于类型为 boolean的属性(不是Boolean),getter方法还可以写为isProperty(getProperty仍然可用)。 

一般来我们用IDE(eclipse,JBuilder,IntelliJ IDEA)的自动生成代码功能为属性添加gettter/setter方法时,对于boolean类型,生成的getter方法名都是isProperty而不是getProperty. Boolean类型生成get set方法不受影响。 
所以对于boolean类的属性,如果有一天你把它手工改成了Boolean类型,那么就要把相应的getter方法名改为getProperty,否则isProperty方法不会被视为property的gettter方法,就会给后续带来一系列麻烦。 
下面是个简单的测试代码,原本是boolean类型的woman变量让我改成了Boolean,然后PropertyUtilsBean 就无法找到woman的getter方法了,如果改成getWoman,则不论woman是Boolean还是boolean都可以被正确识别。

package iadb;
import java.beans.PropertyDescriptor;
import org.apache.commons.beanutils.BeanUtilsBean;
import org.apache.commons.beanutils.PropertyUtilsBean;
import org.junit.Test;
public class TestBeanUtils {
public class Person{
private Boolean woman;
public Boolean isWoman() {//改成setWoman
return woman;
}
public void setWoman(Boolean woman) {
this.woman = woman;
}
public Person(){
}
}
@Test
public void test() {
BeanUtilsBean beanUtils = BeanUtilsBean.getInstance();
PropertyUtilsBean propertyUtils = beanUtils.getPropertyUtils();
PropertyDescriptor[] origDescriptors = propertyUtils.getPropertyDescriptors(Person.class);
// 列出Person的所有属性及getter/setter方法
for(PropertyDescriptor propertyDescriptor:origDescriptors){
System.out.println(propertyDescriptor);
}
}
}
  • 输出,找不到readMethod

java.beans.PropertyDescriptor[name=woman; propertyType=class java.lang.Boolean; writeMethod=public void iadb.TestBeanUtils$Person.setWoman(java.lang.Boolean)] 
java.beans.PropertyDescriptor[name=class; propertyType=class java.lang.Class; readMethod=public final native java.lang.Class java.lang.Object.getClass()]

最后

以上就是笑点低仙人掌为你收集整理的JavaBean中布尔类型使用注意的全部内容,希望文章能够帮你解决JavaBean中布尔类型使用注意所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部