首页 > 编程知识 正文

java定义布尔变量,java变量声明规则

时间:2023-05-06 13:32:37 阅读:129791 作者:3413

Java布尔变量命名和类型问题1. Java变量命名和类型概述使用isXXX命名变量问题3 .基本类型和包装选择问题

1. Java变量的命名和类型概述

在平时的业务开发过程中,实体创建时,很多同学习惯于命名以isXXX开头的一些属性,如isDeleted、isSupport、isUpper等。 Java开发手册不允许用isXXX命名。 此外,实体强制使用包装类型。

这里讨论两个问题。 一个是命名问题,以isXXX开头的变量;另一个是对象所使用的包类型问题。

2 .使用isXXX命名变量的问题,实际上已在阿里巴巴发行的java开发手册中注明。 强制规定,布尔型数据无论是布尔型数据还是布尔型数据,都不能用isXXX命名

1 .实际上javaBeans的规范对它们有相应的规定,基本数据类型的属性,其getter和setter方法是getXXX ()和setXXX,但对于基本数据中的布尔型数据,其getter和setter方法但是包装类型都以get开始。

2 .此方案在一些情况下工作正常,但在一些rpc框架中,当通过反向分析读取到isSuccess )方法时,rpc框架“假设”相应的属性值为success,实际上是相应的属性

3 .建议不要将布尔类型的属性值设置为以is开头。 否则,将发生rpc框架序列化异常。

4 .将ide自动生成的isSuccess ()方法强制更改为getSuccess () )也可以获取Success属性值(如果两者共存,则然后通过getSuccess () )方法获取Success属性值

代码验证

/** *商品实体* * * @ authorzrj * @ since 2021/12/2 * */public class goods {/* * *无非布尔*is开始: get和set方法无正常*is开始/* * *布尔型,没有get方法,以isXXX开头的方法和setXXX方法。 *无is启动:以常规isXXX、setXXX *启动: is和set方法会自动从属性名称中删除is */private boolean lower。 私密布尔输入器; /** * Boolean包类型,常规getXXX、setXXX *不带is开始:常规getXXX、setXXX *带is开始: get和set方法从属性名称开始按is */private boox 私密布尔is deleted; publicstringgetstart ((returnstart; } publicvoidsetstart (string start ) { this.start=start; }公共字符串getisstop () { return isStop; } publicvoidsetisstop (stringisstop ) { this.isStop=isStop; }公共布尔is lower () { return lower; } publicvoidsetlower (布尔逻辑) { this.lower=lower; }公共布尔isupper (() { return isUpper; } publicvoidsetupper (布尔更新器) { isUpper=upper; }公共布尔获取del () { return del; } publicvoidsetdel (布尔戴尔) { this.del=del; }公共布尔获取删除(() { return isDeleted; } publicvoidsetdeleted (布尔删除) { isDeleted=deleted; }3.以基本类型和包类的选择问题为例。 是计算利润率的系统,利润率有正有负。 如果使用基本类型的bouble定义数据,则在调用RPC时,如果出现问题,本来应该返回错误,但由于使用了基本类型,所以返回了0.0。 系统没有任何问题,认为今年收支平衡,其实没有注意到发生了错误。

使用包装的数据类型Double,如果RPC调用失败,将返回null,从而可以直接验证问题的发生,而不会影响默认问题的判断。

阿里java开发手册对此也有强制规定:

因此,这里建议POJO使用包装器数据类型,局部变量使用基本数据类型。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。