直接上例子:

然后用 Idea 自动生成 getter 和 setter

public class XyzBean {

    //最普通的
private String name; //Boolean类型,带is前缀(3处都要手工修改成标准的,若不手工修改,自己看后果)
private Boolean isHis; //Boolean类型,没有is前缀(完全没有问题)
private Boolean noIs; //String类型,带is前缀(完全没有问题)
private String isMan; //Long类型,带is前缀,Integer一样,不举例了(完全没有问题)
private Long isLong; public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} //方法名这里少了is,应该是getIsHis
public Boolean getHis() {
return isHis;
} //方法名这里少了is, 应该是 setIsSuccess
public void setHis(Boolean his) {//参数名,应该是 isHis
//这里又少了this关键字,应该是 this.isHis = isHis;
isHis = his;
}
public Boolean getNoIs() {
return noIs;
} public void setNoIs(Boolean noIs) {
this.noIs = noIs;
} public String getIsMan() {
return isMan;
} public void setIsMan(String isMan) {
this.isMan = isMan;
} public Long getIsLong() {
return isLong;
} public void setIsLong(Long isLong) {
this.isLong = isLong;
}
}

假如用这个 XyzBean 做返回,我们把它 序列化成 json看下 会是什么样子的:

public class TestMain {
public static void main(String[] args) throws JsonProcessingException {
ObjectMapper objectMapper = new ObjectMapper();
XyzBean xyzBean = new XyzBean();
xyzBean.setName("我操");
xyzBean.setHis(true);
xyzBean.setNoIs(false);
xyzBean.setIsMan("yes");
xyzBean.setIsLong(1L);
System.out.println(objectMapper.writeValueAsString(xyzBean));
}
}
{"name":"我操","noIs":false,"isMan":"yes","isLong":1,"his":true}//根本就不存在 his 属性,我们都没有定义,怎么出来一个 这个

问题就出来了,属性名发生了变化,坑啊 草草草

解决方法,凡是 boolean 类型的 is开头的 不用 idea 自动生成,或生成后 自己手工修改3个地方。

我们修改下,再测试:

java bean 慎用 is开头isXxx开头的属性,若必须得用,那么一定要记得 idea自动生成的 setter 和 getter会不标准,从而会引起问题,他自动生成后,需要手工再次进行修改,才可使用,要不然有可能引起各种问题的更多相关文章

  1. Spring中用@Component、@Repository、@Service和 @Controller等标注的默认Bean名称会是小写开头的非限定类名

    今天用调度平台去调用bean中的方法时,提示找不到bean.经查,发现是由于如果在标注上没有提供name属性值,则默认的bean名称是小写开头的,而不是大写开头的. 下面是其他文档参阅: 使用过滤器自 ...

  2. 【Spring】10、Spring中用@Component、@Repository、@Service和 @Controller等标注的默认Bean名称会是小写开头的非限定类名

    @Service用于标注业务层组件(我们通常定义的service层就用这个) @Controller用于标注控制层组件(如struts中的action) @Repository用于标注数据访问组件,即 ...

  3. [转载]手工安全测试方法&修改建议

    转载自: Web安全测试(一)-手工安全测试方法&修改建议 1.XSS(Cross-Site Script)跨站脚本攻击 XSS(Cross-Site Script):跨站脚本攻击. 它指的是 ...

  4. 什么是Java Bean

    刚才看java中的注解,老是说注解引入的是个java Bean,那我就要问了,什么是Java Bean? 知乎引用:https://www.zhihu.com/question/19773379下杨博 ...

  5. Java bean与Spring、Spring MVC关系

    Java Bean Java语言欠缺属性.事件.多重继承功能.所以,如果要在Java程序中实现一些面向对象编程的常见需求,只能手写大量胶水代码.Java Bean正是编写这套胶水代码的惯用模式或约定. ...

  6. Java bean 是个什么概念?

    Java语言欠缺属性.事件.多重继承功能.所以,如果要在Java程序中实现一些面向对象编程的常见需求,只能手写大量胶水代码.Java Bean正是编写这套胶水代码的惯用模式或约定.这些约定包括getX ...

  7. 用大白话聊聊JavaSE -- 如何理解Java Bean(一)

    首先,在开始本章之前,先说一个总的概念:所谓的Java Bean,就是一个java类,编译后成为了一个后缀名是 .class的文件.这就是Java Bean,很多初学者,包括当年的我自己,总是被这些专 ...

  8. 白话 Java Bean

    所谓的Java Bean,就是一个java类,编译后成为了一个后缀名是 .class的文件.这就是Java Bean,不就是Java类吗? 1. 什么是 Java Bean? 很多培训机构在讲java ...

  9. Web安全测试(一)-手工安全测试方法&修改建议

    常见问题 1.XSS(CrossSite Script)跨站脚本攻击 XSS(CrossSite Script)跨站脚本攻击.它指的是恶意攻击者往Web 页面里插入恶意 html代码,当用户浏览该页之 ...

  10. Java框架之Java Bean

    链接 知乎https://www.zhihu.com/question/19773379 总结 符合一定规范的编写的Java类,不是一种技术,而是一种规范.大家对于这种规范,总结了很多开发技巧,工具函 ...

随机推荐

  1. 9、SpringBoot-mybatis-druid多源数据多源数据

    系列导航 springBoot项目打jar包 1.springboot工程新建(单模块) 2.springboot创建多模块工程 3.springboot连接数据库 4.SpringBoot连接数据库 ...

  2. <vue 基础知识 4、计算属性computed>

    代码结构 一.     计算属性简单使用 1.效果 2.代码 01-计算属性简单用法.html <!DOCTYPE html> <html lang="en"&g ...

  3. shell脚本(15)-sed命令

    文档目录一.sed-简介1.shell对文件操作介绍2.sed命令简介3.sed语法: sed [options] '{command}{flags}' [filename]二.sed-命令选项( - ...

  4. latex · markdown | 如何写矩阵和大公式

    1 \left[\begin{array}{c} a & b \\ c & d \end{array}\right] 效果: \[\left[\begin{array}{c} a &a ...

  5. java - 对象装载数据返回

    1. 创建 Phone 类 package class_object; public class Phone { String brand; String color; double price; v ...

  6. [转帖]TiDB升级、TiFlash测试及对比ClickHouse

    原创 NewSQL 作者:o烟雨潇潇o 时间:2020-05-13 11:53:16  4418  0 TiDB升级.TiFlash测试及对比ClickHouse                   ...

  7. [转帖]TiDB 统计数据库占用大小的N种方法

    TiDB之路2022-03-06 3896 前言 TiDB 如何统计数据库占用空间大小 四种方法 方法一 TiDB 统计数据库占用大小的第一种方法是监控.通过查看 {cluster-name} - O ...

  8. Navicat For Redis 的学习与使用

    Navicat For Redis 的学习与使用 背景 周末在家看了几个公众号: 说到Navicat 16.2已经有了 Redis的客户端. 想着前段时间一直在学习Redis, 但是没有GUI的工具, ...

  9. [转帖]十大主流Nehalem服务器横评(多图)

    https://server.51cto.com/article/201820.html 作者:佚名2010-05-25 09:52:27 运维服务器运维 除了我们的两台基准服务器之外,本次横向评测活 ...

  10. [转帖]整理常用的 vim 命令

    vim 是一款功能强大的文本编辑器,它是Linux下常用的编辑器之一,对于熟练掌握了 vim 的人来说,用它编辑文件,方便又快捷,能极大的提高工作效率 vim 功能强大,对应的命令也非常的多,对于初学 ...