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

然后用 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会不标准,从而会引起问题,他自动生成后,需要手工再次进行修改,才可使用,要不然有可能引起各种问题的更多相关文章
- Spring中用@Component、@Repository、@Service和 @Controller等标注的默认Bean名称会是小写开头的非限定类名
今天用调度平台去调用bean中的方法时,提示找不到bean.经查,发现是由于如果在标注上没有提供name属性值,则默认的bean名称是小写开头的,而不是大写开头的. 下面是其他文档参阅: 使用过滤器自 ...
- 【Spring】10、Spring中用@Component、@Repository、@Service和 @Controller等标注的默认Bean名称会是小写开头的非限定类名
@Service用于标注业务层组件(我们通常定义的service层就用这个) @Controller用于标注控制层组件(如struts中的action) @Repository用于标注数据访问组件,即 ...
- [转载]手工安全测试方法&修改建议
转载自: Web安全测试(一)-手工安全测试方法&修改建议 1.XSS(Cross-Site Script)跨站脚本攻击 XSS(Cross-Site Script):跨站脚本攻击. 它指的是 ...
- 什么是Java Bean
刚才看java中的注解,老是说注解引入的是个java Bean,那我就要问了,什么是Java Bean? 知乎引用:https://www.zhihu.com/question/19773379下杨博 ...
- Java bean与Spring、Spring MVC关系
Java Bean Java语言欠缺属性.事件.多重继承功能.所以,如果要在Java程序中实现一些面向对象编程的常见需求,只能手写大量胶水代码.Java Bean正是编写这套胶水代码的惯用模式或约定. ...
- Java bean 是个什么概念?
Java语言欠缺属性.事件.多重继承功能.所以,如果要在Java程序中实现一些面向对象编程的常见需求,只能手写大量胶水代码.Java Bean正是编写这套胶水代码的惯用模式或约定.这些约定包括getX ...
- 用大白话聊聊JavaSE -- 如何理解Java Bean(一)
首先,在开始本章之前,先说一个总的概念:所谓的Java Bean,就是一个java类,编译后成为了一个后缀名是 .class的文件.这就是Java Bean,很多初学者,包括当年的我自己,总是被这些专 ...
- 白话 Java Bean
所谓的Java Bean,就是一个java类,编译后成为了一个后缀名是 .class的文件.这就是Java Bean,不就是Java类吗? 1. 什么是 Java Bean? 很多培训机构在讲java ...
- Web安全测试(一)-手工安全测试方法&修改建议
常见问题 1.XSS(CrossSite Script)跨站脚本攻击 XSS(CrossSite Script)跨站脚本攻击.它指的是恶意攻击者往Web 页面里插入恶意 html代码,当用户浏览该页之 ...
- Java框架之Java Bean
链接 知乎https://www.zhihu.com/question/19773379 总结 符合一定规范的编写的Java类,不是一种技术,而是一种规范.大家对于这种规范,总结了很多开发技巧,工具函 ...
随机推荐
- vue-asome-swiper
- Prime Time - 介绍
Prime Time是对timing进行分析 Prime Time使用的是STA方法进行分析 工具会有更新,但是核心内容是不变的 Prime Time(intro to STA) 没有PT工具的时候, ...
- 给Hexo博客文章加密
有的时候博客内容会有变动,首发博客是最新的,其他博客地址可能会未同步,认准https://blog.zysicyj.top 首发博客地址 原文地址 这是个啥 首先, 这是 Hexo 生态圈中 最好的 ...
- 【转】国产飞腾D2000:基于A72?
https://zhuanlan.zhihu.com/p/612054128 China's Phytium D2000: Building on A72? 国产飞腾D2000:基于A72? PS:麒 ...
- [转帖]Oracle JDBC中的语句缓存
老熊 Oracle性能优化 2013-09-13 在Oracle数据库中,SQL解析有几种: 硬解析,过多的硬解析在系统中产生shared pool latch和library cache liatc ...
- [转帖]【InfluxDB V2.0】介绍与使用,flux查询、数据可视化
目录 一.关键概念 二.系统结构 三.配置文件 四.Flux查询语句 五.可视化数据 附录 一.关键概念 相比V1 移除了database 和 RP,增加了bucket. V2具有以下几个概念: ti ...
- [转帖]jmeter_采样器sampler简介
1.取样器介绍 取样器是用来模拟用户操作的,向服务器发送请求以及接收服务器的响应数据. 取样器是在线程组内部的元件,也就是说取样器只能在线程组中添加. 取样器(Sampler)是性能测试中向服务器发送 ...
- [转帖]记一次vcsa6修复过程
一. 某天发现一台vmware vCenter Server Appliance services 6偶尔能登陆了,但极不稳定,连shell都偶尔能进...... 然后利用各种手段想方设法进到she ...
- [转帖]【Redis】Redis中使用Lua脚本
Lua是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放,其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能. Lua具体语法参考:https://www.runoob. ...
- 【转帖】训练中文LLaMA大规模语言模型
https://zhuanlan.zhihu.com/p/612752963?utm_id=0 https://github.com/CVI-SZU/Linlygithub.com/CVI-SZU/ ...