起源:www.gaodaima.com/belongtocode/article/details/100635246
背景
平时工作中大家常常应用到boolean以及Boolean类型的数据,前者是根本数据类型,后者是包装类,为什么不举荐应用isXXX
来命名呢?
到底是用根本类型的数据好呢还是用包装类好呢?
例子
1.其余非boolean类型
private String isHot; public String getIsHot() { return isHot; }
2.boolean类型
private boolean isHot; public boolean isHot() { return isHot; }
3.包装类型
private Boolean isHot; public Boolean getHot() { return isHot; }
4.不以is结尾
private boolean hot; public boolean isHot() { return hot; }
5.包装类型
private Boolean hot; public Boolean getHot() { return hot; }
其实阿里巴巴公布的java开发手册中就写明了,强制规定,布尔类型的数据,无论是boolean还是Boolean都不准应用isXXX来命名
- 对于非boolean类型的参数,getter和setter办法命名的标准是以get和set结尾
- 对于boolean类型的参数,setter办法是以set结尾,然而getter办法命名的标准是以is结尾
- 包装类主动生成的getter和setter办法的名称都是
getXXX()
和setXXX()
获取这份完整版手册,在Java核心技术公众号后盾回复:手册。
1.其实javaBeans标准中对这些均有相应的规定,根本数据类型的属性,其getter和setter办法是getXXX()
和setXXX
,然而对于根本数据中布尔类型的数据,又有一套规定,其getter和setter办法是isXXX()
和setXXX
。然而包装类型都是以get结尾
2.这种形式在某些时候是能够失常运行的,然而在一些rpc框架外面,当反向解析读取到isSuccess()
办法的时候,rpc框架会“认为”其对应的属性值是success,而实际上其对应的属性值是isSuccess,导致属性值获取不到,从而抛出异样。
总结
1、boolean类型的属性值不倡议设置为is结尾,否则会引起rpc框架的序列化异样。
2、如果强行将IDE主动生成的isSuccess()
办法批改成getSuccess()
,也能获取到Success属性值,若两者并存,则之后通过getSuccess()
办法获取Success属性值。
工作中应用根本类型的数据好还是包装类好
咱们举个例子,一个计算盈利的零碎,其盈利比例有正有负,若应用了根本类型bouble定义了数据,当RPC调用时,若呈现了问题,原本应该返回谬误的,然而因为应用了根本类型,返回了0.0,零碎会认为没有任何问题,往年收支平衡,而不会发现其实是呈现了谬误。
若应用了包装数据类型Double,当RPC调用失败时,会返回null,这样间接就能看到呈现问题了,而不会因为默认值的问题影响判断。
其实阿里java开发手册中对于这个也有强制规定:
因而,这里倡议大家POJO中应用包装数据类型,局部变量应用根本数据类型。
近期热文举荐:
1.1,000+ 道 Java面试题及答案整顿(2021最新版)
2.别在再满屏的 if/ else 了,试试策略模式,真香!!
3.卧槽!Java 中的 xx ≠ null 是什么新语法?
4.Spring Boot 2.6 正式公布,一大波新个性。。
5.《Java开发手册(嵩山版)》最新公布,速速下载!
感觉不错,别忘了顺手点赞+转发哦!