美文网首页
Excuse me?同事质疑变量名取名不能用isXXX这种方式?

Excuse me?同事质疑变量名取名不能用isXXX这种方式?

作者: Java微服务 | 来源:发表于2019-12-23 20:47 被阅读0次

再看到有同事这样写,或者问你为什么,把这篇文章丢给他吧。

最近在做Code Review,写下了这篇文章:代码写成这样,老夫无可奈何!,说多了都是泪啊。。

最近又有人同事跑过来质疑我: 为什么变量名取名不能用 isXXX 这种方式,这样有什么问题?!

醉了,讲了好多次都记不住,我让他自己去看阿里巴巴的《Java开发手册》,或者自行百度,说实话,有点工作经验人都知道,这都是基础的东西。

本没什么好写的,鉴于有好多小白程序员,今天栈长就把为什么不能用 isXXX 拿出来分享一篇文章吧,希望对你有用。

首先我们来看阿里巴巴的《Java开发手册》关于 isXXX 是怎么定义的吧:

【强制】POJO 类中布尔类型变量都不要加 is 前缀,否则部分框架解析会引起序列化错误。

反例:定义为基本数据类型 Boolean isDeleted 的属性,它的方法也是 isDeleted(),RPC 框架在反向解析的时候,“误以为”对应的属性名称是 deleted,导致属性获取不到,进而抛出异常。

上面的规范很容易理解吧,就是如果使用 isXXX 这种命名形式会引起潜在的异常呗!

我们再来看一段 IDE 生成的 getter/setter 代码:

变量 isMarried 生成的 getter/setter 方法是:isMarried/setMarried,有些框架就会去找对应的 married 变量,然后就找不到了…

再看变量 graduated,因为都是 boolean 变量,所有生成的逻辑和 isMarried 一样,根据上述规范,它不会产生找不着值的情况,这也是为什么不建议使用 isXXX的命名形式。

这个问题我之前有个同事在使用某个 Web 框架的时候就遇到过,在页面上使用该框架的标签显示对象的值,如:xx.xxx,然后就死活取不到值,还报异常,最后定位就是这个问题。

链接:https://mp.weixin.qq.com/s/9hcip25u1HKPjj5R84LB-g

来源:Java技术栈

关注我了解更多程序员资讯技术,领取丰富架构资料

相关文章

  • Excuse me?同事质疑变量名取名不能用isXXX这种方式?

    再看到有同事这样写,或者问你为什么,把这篇文章丢给他吧。 最近在做Code Review,写下了这篇文章:代码写成...

  • lily学英语打卡课程系列1

    Lesson 1 Excuse Me Excuse me! Yes? Is this your handbag? ...

  • [英译]柏桦诗《对不起》

    Excuse Me By Bai Hua Excuse me, that's not for embarrassi...

  • Lesson 1 Excuse me!

    Lesson 1 Excuse me! Lesson 1 Excuse me!对不起!Listen to the ...

  • 2019-01-30

    lesson 1-2 excuse me! a:Excuse me !b:Yes?a:Is this your h...

  • 语言学习1

    простите (prostite):excuse meизвините (izvinite):excuse m...

  • 2018-11-06

    Excuse me!

  • Excuse me ?

    为什么总有人认为恋爱中的女生作 知不知道为了迎合幼稚单纯的男人而装傻的女生有多累[摊手]

  • excuse me?

    昨天有件很揪心的事情了,本来考研失利这件事已经缓了好久,快好些了。没想到昨天qq邮箱竟然收到一封邮件,来自...

  • Excuse me?

    今天是三年后第一次上班,而且昨天还以为是一份新的挑战,害得我晚上辗转反侧一晚。 但是今天过来怎么感觉自己被忽悠了?...

网友评论

      本文标题:Excuse me?同事质疑变量名取名不能用isXXX这种方式?

      本文链接:https://www.haomeiwen.com/subject/tmytoctx.html