博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Java学习笔记之八】JavaBean中布尔类型使用注意事项
阅读量:7002 次
发布时间:2019-06-27

本文共 1936 字,大约阅读时间需要 6 分钟。

JavaBean是一个标准,遵循标准的Bean是一个带有属性和getters/setters方法的类。

JavaBean的定义很简单,但是还有有一些地方需要注意,例如Bean中含有boolean类型的属性。我们知道对于一个属性来说,如果其命名为test,那么其getter和setter方法一般为getTest()和setTest。但是如果test为一个布尔类型,那么其getter和setter方法为isTest()和setTest()。这是一个区别

1 public class BeanTest { 2     private boolean test; 3  4     public boolean isTest() { 5         return test; 6     } 7  8     public void setTest(boolean test) { 9         this.test = test;10     }11 }

如果我们将这个属性名换为isTest,那么其生成的getter和setter方法,居然和属性为test时的一样

1 public class BeanTest1 { 2     private boolean isTest; 3  4     public boolean isTest() { 5         return isTest; 6     } 7  8     public void setTest(boolean test) { 9         isTest = test;10     }11 }

这个区别在一般的情况下是没有影响的,但是如果涉及到和json串之间的转换,就得注意了。例如,如果我将上面的两个Bean的对象Json化,其结果居然是一样的

1 public static void main(String[] args) {2     System.out.println(JSON.toJSONString(new Bean1())); //{"test":false}3     System.out.println(JSON.toJSONString(new Bean2())); //{"test":false}4 }

如果,我想要生成{“isTest”:false}这样的Json串,那么我们的Bean该怎么定义呢?这时候我们不该依赖于IDEA自动帮我们生成,我们必须手动编写:

1 public class Bean3{ 2     private boolean isTest; 3  4     public boolean getIsTest(){ 5         return isTest; 6     } 7     public void setIsTest(boolean isTest){ 8         this.isTest = isTest; 9     }10 }

虽然这样生成了我们想要的json串,但是这样没有遵循Java规范,感觉很别扭。。。。我们可以使用@JSONField来指定json化后对应的字段名

另外,如果属性是boolean的包装类型Boolean,那么JavaBean定义的getter和setter方法又为什么呢?

1 public class Bean4{ 2     private Boolean test; 3  4     public Boolean getTest() { 5         return test; 6     } 7  8     public void setTest(Boolean test) { 9         this.test = test;10     }11 }12 13 public class Bean5{14     private Boolean isTest;15 16     public Boolean getTest() {17         return isTest;18     }19 20     public void setTest(Boolean test) {21         isTest = test;22     }23 }

我们发现Boolean类型和boolean类型属性的get和set方法也是有差别的。

总的来说,为了避免麻烦,不管是定义Boolean类型的属性,还是定义boolean类型的属性,其字段名不要使用isXXX这种方式,然后按照Bean规范生成get和set方法就好了

转载地址:http://ngevl.baihongyu.com/

你可能感兴趣的文章
HDU 2147 kiki's game(规律,博弈)
查看>>
TP5视频上传,商城增加视频上传功能
查看>>
Markdown语法学习记录
查看>>
Maupassant主题优化、屠城hexo主题优化版
查看>>
python:深入pip的安装源
查看>>
《算经十书》
查看>>
ant build文件详解
查看>>
java之JMS
查看>>
jquery-weui微信支付报错问题解决
查看>>
《Groovy极简教程》第7章 Groovy与Gradle
查看>>
Java并发编程:底层实现机制
查看>>
matlab 与数据库操作
查看>>
Vuex 最简单有效的使用
查看>>
前端设计-css网格布局的最佳实践
查看>>
用WijmoJS玩转您的Web应用 —— Ionic
查看>>
Intellij IDEA创建Android项目异常
查看>>
过滤器应用【编码、敏感词、压缩、转义过滤器】
查看>>
JAVA IO流 字节流 字符流 缓冲流的注意点和效率
查看>>
球迷快来领福利!NBA国王队推出粉丝AR应用
查看>>
会投影的智能手表LumiWatch,可在手臂自由地滑动并控制其中的应用
查看>>