阿里Java开发手册中强制规定:
而不类型的变量名不要使用
isXxx
的格式。因为布尔类型属性的getter方法与其他类型的不一样,是isSuccess()
,如果在变量名之前加上is
的话,属性名与方法名就重名,就可能会导致在反序列化时就找不到名为success
的属性。
布尔类型的属性应使用包装类型而不是基本数据类型。因为当接收远程调用的数据时,如果属性布尔值为
null
,而属性的类型又为基本数据类型,则会进行自动拆箱从而导致NPE异常。由于包装类型的默认值是null
,基本类型的默认值是false
,当调用服务失败时,null
可以提供额外的信息表示发生了异常,而false
可能被误以为调用成功的真实数据就是false
。这一点同样也适用于POJO类中其他类型(整型、浮点型)的属性。