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

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

public class BeanTest {

private boolean test;

public boolean isTest() {

return test;

}

public void setTest(boolean test) {

this.test = test;

}

}

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

public class BeanTest1 {

private boolean isTest;

public boolean isTest() {

return isTest;

}

public void setTest(boolean test) {

isTest = test;

}

}

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

public static void main(String[] args) {

System.out.println(JSON.toJSONString(new Bean1())); //{"test":false}

System.out.println(JSON.toJSONString(new Bean2())); //{"test":false}

}

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

public class Bean3{

private boolean isTest;

public boolean getIsTest(){

return isTest;

}

public void setIsTest(boolean isTest){

this.isTest = isTest;

}

}

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

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

public class Bean4{

private Boolean test;

public Boolean getTest() {

return test;

}

public void setTest(Boolean test) {

this.test = test;

}

}

public class Bean5{

private Boolean isTest;

public Boolean getTest() {

return isTest;

}

public void setTest(Boolean test) {

isTest = test;

}

}

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

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

java布尔类型的调用_Java bean中布尔类型使用注意相关推荐

  1. java 自定义函数的调用_Java/Android中的函数调用回调函数自定义回调函数

    在做Android自定义控件时遇到要自定义回调函数的问题,想想自己还暂时没有那么精深的技术,赶紧返过头回来再重新研究Java中回调函数的问题.然而不幸的是,网上太多杂乱的帖子和博客都是转来转去,而且都 ...

  2. java方法定义 与调用_Java方法的定义及调用

    Java方法的定义及调用 通过以上内容的学习,可以看出方法是一段可以完成某个特定功能的并且可以被重复利用的代码片段.接下来我们来学习一下方法应该怎么定义以及怎么调用. 定义/声明方法的语法格式如下所示 ...

  3. Java主方法引用传递_java方法中的参数传递是值传递还是引用传递(转)

    1.当参数变量为基本数据类型或者字符串时: ... ... //定义了一个改变参数值的函数 public static void changeValue(int x) { x = x *2; } .. ...

  4. java 绑定微信号开发_Java开发中的常见危险信号

    java 绑定微信号开发 在开发,阅读,复审和维护成千上万行Java代码的几年中,我已经习惯于看到Java代码中的某些" 危险信号 ",这些信号通常(但可能并非总是)暗示着代码有问 ...

  5. java io使用哪些设计模式_JAVA IO中的设计模式

    在java语言 I/O库的设计中,使用了两个结构模式,即装饰模式和适配器模式. 在任何一种计算机语言中,输入/输出都是一个很重要的部分.与一般的计算机语言相比,java将输入/输出的功能和使用范畴做了 ...

  6. python布尔型数组_对numpy中布尔型数组的处理方法详解

    布尔数组的操作方式主要有两种,any用于查看数组中是否有True的值,而all则用于查看数组是否全都是True. 如果用于计算的时候,布尔量会被转换成1和0,True转换成1,False转换成0.通过 ...

  7. java批量处理数据库语句_Java项目中调用bat批处理进行多用户数据库备份

    Java项目中调用bat批处理配合使用BCP进行多用户数据的备份 一.项目需求 最近项目中需要对数据库(Sql Server系列数据库)进行备份.项目中的需求不是简单的整个数据库的备份,而是根据用户来 ...

  8. java 变参 使用数组调用_java中的可变参数使用方法

    java中的可变参数使用方法 可变参数时Java 1.5新增的方法,可变参数方法接收0个或者多个指定类型的参数,可变参数机制通过先创建一个数组,数组的大小为在调用位置所传递的参数数量,然后将参数值传到 ...

  9. java xfire指定参数名_Java编程中使用XFire框架调用WebService程序接口

    JAVA调用webservice,当你刚开始接触的时候你会觉得它是一个恶梦,特别是没有一个统一的标准实现,比起.net的那些几步就可以完成的webservice实现,我们看着JAVA的实现真是伤心啊. ...

最新文章

  1. 一个创业者的自我修养2019版
  2. Angular应用从Component到Html的数据绑定是如何实现的 -数据流的讨论
  3. MapInfo开发心得——控件篇
  4. 深信服 linux软件开发面试题整理
  5. CLIP再创辉煌!西南交大MSRA提出CLIP4Clip,进行端到端的视频文本检索!
  6. 【Spark】Spark 3.0 支持 event logs 滚动
  7. Python多线程编程的一个掉进去不太容易爬出来的坑
  8. tomcat 原理与使用资料
  9. 发现一篇不错的学习隐马尔可夫模型的文章
  10. R语言ETL工程:连接(join)
  11. 机械臂——六轴机械臂构型分析与MATLAB建模
  12. python多条件求和_使用sumifs进行多条件求和
  13. windows计算机日志时间id6008,windows错误事件id6008修复方法
  14. 银联在线支付--测试
  15. 微软的mak与kms区别
  16. jQuery easyUI pannel 用法记录
  17. 计算机初中几年级考,2021年小升初考试时间(2021小升初考试是几月几号 )
  18. 打印表格留标题怎么设置_Excel表格打印时每页都有表头标题,是怎样设置的?...
  19. zookeeper为什么是CP原则
  20. java遍历excel 表格

热门文章

  1. css3 走马灯效果
  2. 在ie中实现placeholder属性(其实主要针对ie8,9)
  3. 小布老师Oracle11g基础知识小记
  4. Spring中的循环依赖
  5. elasticsearch :unassigned错误解决
  6. 运兴ETF:成为50ETF期权赢家必须克服的共性弱点
  7. 關於淘寶上販賣的ESET NOD32激活碼
  8. 图解常用的RAID 0, RAID 1, RAID 5, RAID 10
  9. 使用 SingleStore 作为地理空间数据库
  10. Sonar介绍及使用