变量名用isSuccess还是success,你知道吗?

开篇

为什么要讲这个呢,是因为之前看到一篇文章关于阿里爸爸开发人员手册的编程规范。如果有兴趣可以去查看一下本链接。

正片

why?

为什么会有这种情况需要选择呢,而且是指定仅布尔类型,其他基本类型却不用考虑呢。原因是因为在开发工具当中,假若是基本类型的话是自动生成get/set方法,而对于布尔类型的则是生成is/set方法。(其实不是有无意看到开发规则,还真没留意过这个区别呢)如图:
在这里插入图片描述

分析

在编程命名上,对于变量的命名通常有三种形式,isSuccesssuccesssucessBoolean。第三种是用于强调是包装类而非基本类型。
让我们来看看这三种命名规则,在编程环境中自动加入getter/setter时候是怎么样的。以及在序列化过程中会发生什么事情(对象转json)这里选择用阿里巴巴的fastjson谷歌的gson作对比。

1.isSuccess

在这里插入图片描述
在这里插入图片描述
这里可以看得出来,当你变量名为isSuccess时候,自动生成get/set方式时候,会把is忽略掉而不是isIsSuccess作为方法名。而有的序列化工具是根据get/set方法名作为序列化的标准,即把is后面的当做是变量名称。而谷歌的gson工具这类则是把真正的变量名当做序列化标准。

2.success

在这里插入图片描述
在这里插入图片描述
这里因为使用的是success变量名,所以不论是从变量名入手还是方法名入手,变量的名字都是翻译成success。这样序列化出来的字符串则是正确的。

3.successBoolean

在这里插入图片描述
当布尔型是包装类的时候,则自动生成的不是is/set方法了。而是正正规规的get/set方法了,那么不管哪种解析都好,就不会出现变量名获取的名字和方法名获取的名字不同情况。那么为什么要引出包装类命名呢?(通常情况是出现在RPC框架或者反序列化时候,笔者就不演示了,而是直接序列化反向推到)请看下图:
在这里插入图片描述
图中明显看出来,当变量为基本数据类型的时候,在没有赋值情况下还是会显示默认值false。而包装类则是空的。这种情况好比,你在页面没有给该值填写任何数据,如果使用包装类的话在后台处理数据的时候,你可以直接判断是否为空即可,而使用基本数据类型,你判断为false的话,这个值有可能是人为输入也有可能是自动填写的。

总结

当使用变量为布尔基本类型的话,变量名选择success。不可在前面添加is的字样。如果需要页面传输数据的话,选择包装类而非基本类型即可。

这是小弟的一些小见解,外加给自己做个笔记,若有不对地方,望各位大佬前来批评指点。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值