Java布尔类型变量命名与类型问题

article/2025/8/26 10:30:10

Java布尔类型变量命名与类型问题

  • 1. Java变量命名与类型概述
  • 2. 使用isXXX来命名变量问题
  • 3. 基本类型与包装类选择问题

1. Java变量命名与类型概述

平时业务开发过程中,实体创建的时候很多同学习惯使用isXXX开头命名一些属性,比如isDeleted,isSupport,isUpper等等,Java开发手册中是不准使用isXXX来命名的,而且实体中强制使用包装类型。

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

2. 使用isXXX来命名变量问题

其实阿里巴巴发布的java开发手册中就写明了,强制规定,布尔类型的数据,无论是boolean还是Boolean都不准使用isXXX来命名
在这里插入图片描述
1.其实javaBeans规范中对这些均有相应的规定,基本数据类型的属性,其getter和setter方法是getXXX()和setXXX,但是对于基本数据中布尔类型的数据,又有一套规定,其getter和setter方法是isXXX()和setXXX。但是包装类型都是以get开头。

2.这种方式在某些时候是可以正常运行的,但是在一些rpc框架里面,当反向解析读取到isSuccess()方法的时候,rpc框架会“以为”其对应的属性值是success,而实际上其对应的属性值是isSuccess,导致属性值获取不到,从而抛出异常。

3.boolean类型的属性值不建议设置为is开头,否则会引起rpc框架的序列化异常。

4.如果强行将IDE自动生成的isSuccess()方法修改成getSuccess(),也能获取到Success属性值,若两者并存,则之后通过getSuccess()方法获取Success属性值。

代码验证

/*** 商品实体类** @author zrj* @since 2021/12/2**/
public class Goods {/*** 非布尔类型* 不带is开头:get与set方法正常* 带is开头 :get与set方法正常*/private String start;private String isStop;/*** boolean基本类型,没有get方法,而是以isXXX开头的方法,与setXXX的方法。* 不带is开头:正常isXXX,setXXX* 带is开头 :is与set方法都会自动去掉属性名称中的is*/private boolean lower;private boolean isUpper;/*** Boolean包装类型,正常getXXX,setXXX* 不带is开头:正常getXXX,setXXX* 带is开头 :get与set方法都会自动去掉属性名称中的is*/private Boolean del;private Boolean isDeleted;public String getStart() {return start;}public void setStart(String start) {this.start = start;}public String getIsStop() {return isStop;}public void setIsStop(String isStop) {this.isStop = isStop;}public boolean isLower() {return lower;}public void setLower(boolean lower) {this.lower = lower;}public boolean isUpper() {return isUpper;}public void setUpper(boolean upper) {isUpper = upper;}public Boolean getDel() {return del;}public void setDel(Boolean del) {this.del = del;}public Boolean getDeleted() {return isDeleted;}public void setDeleted(Boolean deleted) {isDeleted = deleted;}
}

3. 基本类型与包装类选择问题

咱们举个例子,一个计算盈利的系统,其盈利比例有正有负,若使用了基本类型bouble定义了数据,当RPC调用时,若出现了问题,本来应该返回错误的,但是由于使用了基本类型,返回了0.0,系统会认为没有任何问题,今年收支平衡,而不会发现其实是出现了错误。
若使用了包装数据类型Double,当RPC调用失败时,会返回null,这样直接就能看到出现问题了,而不会因为默认值的问题影响判断。

阿里java开发手册中对于这个也有强制规定:
在这里插入图片描述因此,这里建议大家POJO中使用包装数据类型,局部变量使用基本数据类型。


http://chatgpt.dhexx.cn/article/Dl07CknL.shtml

相关文章

Unity UI动画通过布尔变量来转换状态机的模板

通过布尔变量来转换状态机的模板 适用状态机的基本模式:使用方法:脚本代码 适用状态机的基本模式: 例如点一下弹出托盘,再点一下托盘收回的事件 状态机说明:其中ButtomPanel为收回状态,bool 变量 “press”…

Linux教程 - 在Shell脚本中声明和使用布尔变量示例

需要定义一个名为failed的bash变量,并将值设置为False。当从cron作业调用我们的脚本时,特定的任务可能会失败,然后我需要将failed转换为True。基于$failed,我需要发送一封电子邮件警告我的cron作业失败了。那么,如何在…

单片机 bdata是布尔变量的存储方式

bdata是布尔变量的存储方式 uchar是unsigned char类型 位变量flag被定义为bdata存储类型,编译时编译器将把该变量定位在51单片机片内数据存储区(RAM)中的位寻址区 uchar bdata rfLED[2] {0x00,0x00}; //用于存放遥控指示灯用。 long int time…

javascript 布尔_Javascript布尔变量类型

javascript 布尔 While making decisions we generally need some logic values. Logic values are generally true and false . In Javascript these values are called as Boolean type. Boolean type variables holds logic values true and false. This type is simpler ag…

Java基础入门笔记-布尔类型变量

代码如下所示: package my;public class HelloWorld {public static void main(String[] args){boolean bool_1true;boolean bool_2false;System.out.println("bool_1 is "bool_1);System.out.println("bool_2 is "bool_2);}} 运行结果如下所示…

【Python】布尔类型 ( 布尔类型变量 | 比较运算符 )

文章目录 一、布尔类型变量二、比较运算符三、代码示例 一、布尔类型变量 Python 中的 布尔类型 ( bool ) 用于 逻辑判断 , 布尔类型 是 数字类型 ( Number ) 的一种 , 其有两种 字面量 取值 : 真 : True , 其本质是数字 1 ;假 : False , 其本质是数字 0 ; 代码示例 : # 布尔…

跳板机相关

跳板机 跳板机什么是跳板机 堡垒机什么是堡垒机 JumpServer 跳板机 什么是跳板机 跳板机:开发人员需要先登录跳板机才可进入连接到开发机中(机房)。 缺点:缺少人员的控制及审计,无法追责 堡垒机 什么是堡垒机 堡…

xshell7 登录脚本 设置跳板机

xshell7 登录脚本 设置跳板机 在实际开发或生产环境,经常会出现跳板机,手动执行比较麻烦,故进行如下两步设置即可: 第一步 在会话管理器中将跳板机的 IP 填入到连接中,我实验的跳板机是 192.168.190.xxx,需…

Xshell 配置跳板机服务器登录目标服务器

文章目录 1. 配置跳板机服务器1.1. 配置连接1.2. 配置用户身份验证1.3. 配置 SSH 隧道 2. 配置目标服务器2.1. 配置连接2.2. 配置用户身份验证2.3. 配置代理 3. 连接成功 有时候一些服务器在内网中,外部网络无法直接访问,这时我们就需要使用跳板机服务器…

网络安全设备堡垒机跳板机VPN

文章目录 一、堡垒机(Bastion Host)1.1 定义1.2 作用 二、跳板机(Jump Server)2.1 定义2.2 作用 三、VPN(Virtual Private Network)3.1 定义3.2 作用 四、三者的区别 一、堡垒机(Bastion Host&a…

ansible通过跳板机管理内网机器

一、场景: 1、服务器都是内网机器 2、跳板机是公网IP 3、想要使用Ansible管理内网主机 4、逻辑:ansible > 跳板机 > 内网机器 二、解决办法 2.1 测试机器: ansible: 192.168.199.201 jumper: 14.215.177.…

堡垒机 防止合法维护单位合法维护一台服务器的同时以这台服务器为跳板,跳板机与堡垒机最大的不同之处在哪?...

跳板机是什么?跳板机是开发人员登陆到网站分派给应用服务器的唯一途径。开发人员务必最先登陆跳板机,再根据跳板机登陆到应用服务器。再此,就不得不提堡垒机了,堡垒机的定义是一种安全管理工具,具有强大的防御作用和安全审计作用…

vscode 经过跳板机,连接到内网服务器

1、背景:为啥要用跳板机? 一般实验室等环境的服务器是设置在内网环境中的,无法直接使用笔记本在公共环境下直接连接。但是由于种种原因,会出现在这样的场景下需要连接服务器的需求,而通过跳板机是一种常见的办法。 一…

前置机 网闸 摆渡机 跳板机 堡垒机

前言 前置机、网闸和摆渡机都是为了内网安全,尤其是银行、券商、电信运营商等的内网核心后台系统的安全,而使用的技术手段。跳板机和堡垒机则是为了运维人员远程访问控制系统而搭建的机器。 一、前置机 1. 作用 前置机,指代的是设置在后台…

堡垒机介绍和跳板机的简单实现

堡垒机: 在一个特定的网络环境下(公司),如果用户可以直接远程登录操控后端的服务器是十分危险的,为了保障网络和数据不受外部和内部用户的入侵和破坏,运用各种手段监控和记录运维人员对网络内的服务器、网络…

跳板机逐渐被堡垒机替代的最主要原因是这个!

早在2000年左右,一些大中型企业为了集中运维人员的远程登录管理,会在机房部署一台跳板服务器,所有运维人员需要先远程登录本设备,再从跳转服务器登录其他服务器进行运维操作。 但跳转服务器并未实现对运维人员操作行为的管控和审…

网络安全:堡垒机、跳板机、Virtual Private Network知识介绍

目录 堡垒机、跳板机和VPN的概念、用途和区别 1、堡垒机(Bastion Host) 1.1 定义 1.2 作用 2、跳板机(Jump Server) 2.1 定义 2.2 作用 3、Virtual Private Network 3.1 定义 3.2 作用 4、三者之间的关系 对于企业来说…

linux中跳板机的部署

很多人可能看见跳板机一头雾水,不知道是啥,那么我们来了解一下。 跳板机是开发者登录到网站分配给应用服务器的唯一途径。开发者必须首先登录跳板机,再通过跳板机登录到应用服务器。为了保护业务机器的安全,将原有的使用固定密码登…

如何使用跳板机一键登录目标机器

今天主要给大家分享一下ssh客户端怎么配置通过跳板机直接跳转目标机器。 大家知道,在日常的开发中,有可能我们的本机不能够直接连线上的服务器,但是我们本机能有连上跳板机,而跳板机是可以连接线上的服务器的。因此我们只能通过输…

计算机信息单位中1GB等于,1gb等于多少mb 1gb换算多少mb

1GB等于1024MB。数据单位MB与Mb(注意B字母的大小写)常被误认为是一个意思,其实MByte含义是“兆字节”,Mbit的含义是“兆比特”,同时MB和Mb都是数据量单位。计算机存储信息的大小,最基本的单位是字节,一个汉字由两个字节…