• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

关于java:为什么阿里强制-boolean-类型变量不能使用-is-开头

java 搞代码 3年前 (2022-01-27) 85次浏览 已收录 0个评论

起源: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开发手册(嵩山版)》最新公布,速速下载!

感觉不错,别忘了顺手点赞+转发哦!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:关于java:为什么阿里强制-boolean-类型变量不能使用-is-开头

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址