当前位置: 首页 > news >正文

减少if else

1. 三目运算符

可以理解为条件 ?结果1 : 结果2 里面的?号是格式要求。也可以理解为条件是否成立,条件成立为结果1,否则为结果2。

实例:

public String handle(int code) {if (code == 1) {return "success";} else {return "error";}
}

对于条件只有两个的情况下,可以使用三目运算符来解决。

优化:

public String handle(int code) {return code == 1 ? "success" : "error";
}

当条件较少时,可以增强代码阅读性,减少代码臃肿。

2. 枚举类

当条件过多时,就不能用三目运算符了,我们可以使用枚举类。

实例:

/*** 根据code获取支付方式* @param code* @return*/
public String handle(int code) {if (code == 1) {return "支付宝";} else if (code == 2) {return "微信";} else if (code == 3) {return "qq";} else if (code == 4) {return "银行卡";} else {return "现金";}
}

如果后面又增加code,就需要再写if-else,会越来越长并不好维护。

我们可以采用枚举类来优化。

优化:

public enum PayTypeEnum {ALIPAY(1, "支付宝"),WECHAT(2, "微信"),QQ(3, "QQ"),BANK_CARD(4, "银行卡"),CASH(5, "现金");private static Map<Integer, String> payTypeMap = new HashMap();static {for (PayTypeEnum payTypeEnum : PayTypeEnum.values()) {payTypeMap.put(payTypeEnum.getCode(), payTypeEnum.getType());}}public static String get(int code) {if (payTypeMap.containsKey(code)) {return payTypeMap.get(code);}return payTypeMap.get(5);}private int code;private String type;public String getType() {return type;}public void setType(String type) {this.type = type;}public int getCode() {return code;}public void setCode(int code) {this.code = code;}PayTypeEnum(int code, String type) {this.code = code;this.type = type;}
}
public static void main(String[] args) {String res = PayTypeEnum.get(5);System.out.println(res);
}

只需要传入相应的code即可获取数据,不需要再写过长的if-else了。如果需要新增,在枚举类里拓展就好了。

3. 使用断言Assert类

对Object进行判空,是这样的。

实例:

public void handle() {StudentDo studentDo = null;if (studentDo == null) {System.out.println("对象为空");} else {if (studentDo.getName() == null) {System.out.println("学生姓名不能为空");} else if (studentDo.getScore() == null) {System.out.println("学生成绩不能为空");}}
}

我们可以使用断言类

优化:

public void handle1() {StudentDo studentDo = null;Assert.notNull(studentDo, "对象为空");Assert.notNull(studentDo.getName(), "学生姓名不能为空");Assert.notNull(studentDo.getScore(), "学生成绩不能为空");
}

后面再进行业务操作即可。

4. 使用return

实例:

public void handle() {StudentDo studentDo = null;if (studentDo != null) {//业务操作} else {return;}
}

优化:

public void handle1() {StudentDo studentDo = null;if (studentDo == null) {return;}//业务操作
}

5. jdk1.8 Optional

实例:

String sta="hello";
if(sta==null){System.out.println("");
}else{System.out.println(sta);
}

优化:

String sta="hello";
String a=Optional.ofNullable(sta).orElse("");
System.out.println(a);

相关文章:

减少if else

1. 三目运算符 可以理解为条件 ?结果1 : 结果2 里面的?号是格式要求。也可以理解为条件是否成立&#xff0c;条件成立为结果1&#xff0c;否则为结果2。 实例&#xff1a; public String handle(int code) {if (code 1) {return "success";} else {return &quo…...

硕士毕业论文常见的排版小技巧

word排版陆续更新吧&#xff0c;更具我所遇到的一些小问题&#xff0c;总结上来 文章目录1.避免题注&#xff08;图或者表的标题&#xff09;与图或表格分不用页注意点&#xff1a;光标移动到表的题注后面2.设置论文的页眉关键点&#xff1a;需要将每一章节末尾&#xff0c;都要…...

JAVA开发(数据类型String和HasMap的实现原理)

在JAVA开发中&#xff0c;使用最多的数据类型恐怕是String 和 HasMap两种数据类型。在开发的过程中我们每天都使用的不亦乐乎。但是相信很多人都没有考虑过String数据类型的实现原理或者说是在数据结构中的存储原理&#xff0c;还有一个就是是HashMap&#xff0c;也很少有人去了…...

Hbase 映射到Hive

目录 一、环境配置修改 关闭掉hbase&#xff0c;zookeeper和hive服务 进入hive312/conf 修改hive-site.xml配置&#xff0c; 在代码最后添加配置 将hbase235的jar包全部拷贝到hive312的lib目录&#xff0c;并且所有的是否覆盖信息全部输入n&#xff0c;不覆盖 查看hive312下…...

14_MySQL视图

1. 常见的数据库对象2. 视图概述2.1 使用视图的好处视图一方面可以帮我们使用表的一部分而不是所有的表&#xff0c;另一方面也可以针对不同的用户制定不同的查询视图。比如&#xff0c;针对一个公司的销售人员&#xff0c;我们只想给他看部分数据&#xff0c;而某些特殊的数据…...

做程序界中的死神,斩魂刀始解

标题解读&#xff1a;标题中的死神&#xff0c;是源自《死神》动漫里面的角色&#xff0c;斩魂刀是死神的武器&#xff0c;始解是斩魂刀的初始解放形态&#xff0c;卐解是斩魂刀的觉醒解放形态&#xff0c;也是死神的大招。意旨做程序界中程序员的佼佼者&#xff0c;一步一步最…...

顺序表——“数据结构与算法”

各位CSDN的uu们你们好呀&#xff0c;今天小雅兰的内容是数据结构与算法里面的顺序表啦&#xff0c;在我看来&#xff0c;数据结构总体上是一个抽象的东西&#xff0c;关键还是要多写代码&#xff0c;下面&#xff0c;就让我们进入顺序表的世界吧 线性表 顺序表 线性表 线性表&…...

嵌入式Linux从入门到精通之第十六节:U-boot分析

简介 u-boot最初是由PPCBoot发展而来的,可以引导多种操作系统、支持多种架构的CPU,它对PowerPC系列处理器的支持最为完善,而操作系统则对Linux系统的支持最好目前已成为Armboot和PPCboot的替代品。 特点: 主要支持操作系统:Linux、NetBSD、 VxWorks、QNX、RTEMS、ARTOS、L…...

UART 串口通信

第18.1讲 UART串口通信原理讲解_哔哩哔哩_bilibili 并行通信 一个周期同时发送8bit的数据&#xff0c;占用引脚资源多 串行通信 串行通信的通信方式&#xff1a; 同步通信 同一时钟下进行数据传输 异步通信 发送设备和接收设备的时钟不同 但是需要约束波特率&#xff08;…...

【硬件】P沟道和N沟道MOS管开关电路设计

场效应管做的开关电路一般分为两种&#xff0c;一种是N沟道&#xff0c;另一种是P沟道&#xff0c;如果电路设计中要应用到高端驱动的话&#xff0c;可以采用PMOS来导通。P沟道MOS管开关电路PMOS的特性&#xff0c;Vgs小于一定的值就会导通&#xff0c;当Vgs<0,即Vs>Vg,管…...

中移杭研一面经历

文章目录 1、常用的Java元注解@Documented@Target@Retention@Override@Deprecated@Inherited@Repeatable@Native2、Java注解的原理3、spring boot starter开发过程1、原理浅谈2、大概步骤3、项目介绍1、常用的Java元注解 @Documented @Documented 是一个标记注解,没有成员变…...

如何成为一名全栈工程师:专业建议与技能要求

作为一名全栈工程师&#xff0c;你需要拥有跨越前端、后端、数据库等多个领域的技能&#xff0c;并能够将它们整合起来构建出完整的应用程序。因此&#xff0c;成为一名全栈工程师需要你掌握多种技术&#xff0c;具备较强的编程能力和系统设计能力。下面&#xff0c;我将从以下…...

MySQL架构篇

一、进阶学习环境说明 1.1 MySQL服务器环境 Linux虚拟机&#xff1a;CentOS 7 MySQL&#xff1a;MySQL5.7.30 在Linux服务器中安装MySQL&#xff1a; ps.如果有自己的云服务器&#xff0c;可忽略前两步&#xff0c;直接进行第三步 1.2 服务器日志文件说明 MySQL是通过文件系统对…...

Redhat7.6安装weblogic10.3.6(超详细,有图文)

一、环境 linux版本&#xff1a;Redhat 7.6 weblogic版本:WLS10.3.6 jdk版本&#xff1a;jdk1.8.0 下载网址&#xff1a;https://www.oracle.com/technetwork/middleware/weblogic/downloads/index.html 1.安装vsftpd服务&#xff0c;将部署环境使用JDK文件和wls服务文件…...

dashboard疏散主机提示报错:无法疏散主机...处理方法、openstack虚拟机状态卡在重启处理方法、openstack在数据库修改虚拟机状态的方法

文章目录dashboard疏散主机提示报错&#xff1a;无法疏散主机...处理方法报错说明【状态卡在reboot状态】解决方法【登录nova数据库修改虚拟机信息】首先获取nova数据库的密码登录nova数据库并做修改验证信息是否修改成功再次迁移并验证报错说明【虚拟机状态error也会导致疏散失…...

力扣:轮转数组(详解)

前言&#xff1a;内容包括&#xff1a;题目&#xff0c;代码实现&#xff0c;大致思路&#xff0c;代码解读 题目&#xff1a; 给定一个整数数组 nums&#xff0c;将数组中的元素向右轮转 k 个位置&#xff0c;其中 k 是非负数。 示例 1: 输入: nums [1,2,3,4,5,6,7], k 3…...

Vue计算属性Computed

30. Vue计算属性Computed 1. 定义 Computed属性是Vue中的一个计算属性&#xff0c;是一种基于其它属性值计算而来的属性值&#xff0c;具有缓存机制&#xff0c;在依赖的属性值发生变化时会重新计算。 使用computed属性可以避免在模板中书写过多的计算逻辑&#xff0c;提高代…...

实验四:搜索

实验四&#xff1a;搜索 1.填格子 题目描述 有一个由数字 0、1 组成的方阵中&#xff0c;存在一任意形状的封闭区域&#xff0c;封闭区域由数字1 包围构成&#xff0c;每个节点只能走上下左右 4 个方向。现要求把封闭区域内的所有空间都填写成2 输入要求 每组测试数据第一…...

本地开发vue项目联调遇到访问接口跨域问题

本地开发vue项目联调遇到访问接口跨域问题 修改本地的localhost 一&#xff1a;按winr打开运行窗口&#xff0c;输入drivers &#xff0c;然后回车 二&#xff1a;打开etc文件夹&#xff0c;然后用记事本的方式打开里面的hosts文件&#xff0c; 三&#xff1a;这时我们就可…...

Vue键盘事件的使用

前言 在vue中&#xff0c;我们经常会用到键盘事件&#xff0c;不管是我们按下某个键&#xff0c;其实都是一次键盘事件的调用&#xff0c;下面就介绍下Vue中的键盘事件 先写一段代码&#xff0c;这里我选择的键盘事件是keyup,当然用keydown也是没问题的 问题来了&#xff0c;…...

别再混淆了!用PyTorch代码带你彻底搞懂PointNet里的Shared MLP和普通MLP

用PyTorch代码解密PointNet中的Shared MLP与普通MLP本质差异 第一次阅读PointNet论文时&#xff0c;看到"Shared MLP"这个术语总让人困惑——它和普通MLP到底有什么区别&#xff1f;为什么点云处理非要强调"共享"这个概念&#xff1f;本文将通过PyTorch代码…...

ComfyUI Segment Anything 终极指南:一键实现精准AI图像分割

ComfyUI Segment Anything 终极指南&#xff1a;一键实现精准AI图像分割 【免费下载链接】comfyui_segment_anything Based on GroundingDino and SAM, use semantic strings to segment any element in an image. The comfyui version of sd-webui-segment-anything. 项目地…...

收藏备用!网络安全渗透之 CSRF,一篇让你彻底掌握

1 什么是 CSRF 面试的时候的著名问题&#xff1a;“谈一谈你对 CSRF 与 SSRF 区别的看法” 这个问题&#xff0c;如果我们用非常通俗的语言讲的话&#xff0c;CSRF 更像是钓鱼的举动&#xff0c;是用户攻击用户的&#xff1b;而对于 SSRF 来说&#xff0c;是由服务器发出请求…...

从Polycam扫描到自定义街道:用3D高斯泼溅碎片‘搭积木’创建虚拟场景的完整流程

从Polycam扫描到自定义街道&#xff1a;用3D高斯泼溅碎片‘搭积木’创建虚拟场景的完整流程 走在城市的街道上&#xff0c;你是否曾想过把那些有趣的街景元素——复古的路灯、造型独特的长椅、枝繁叶茂的行道树——全都数字化&#xff0c;然后像玩乐高一样重新组合成自己理想中…...

保姆级教程:用Node-RED把传感器数据传到ThingsBoard仪表盘(MQTT全流程)

从零构建物联网数据可视化&#xff1a;Node-RED与ThingsBoard的实战融合 在智能家居、工业监测等物联网场景中&#xff0c;如何将物理世界的传感器数据转化为直观的可视化图表&#xff1f;本文将手把手带您完成从硬件数据采集到云端展示的完整链路实现。不同于单纯的理论讲解&a…...

手把手教你用STM32F103驱动TLC7528双路DAC(附完整代码与避坑指南)

手把手教你用STM32F103驱动TLC7528双路DAC&#xff08;附完整代码与避坑指南&#xff09; 在嵌入式开发中&#xff0c;数字模拟转换器&#xff08;DAC&#xff09;是实现数字信号到模拟信号转换的关键组件。TLC7528作为一款经典的双路8位DAC芯片&#xff0c;以其高性价比和简单…...

观察Taotoken在多模型自动路由下的服务可用性与容灾表现

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 观察Taotoken在多模型自动路由下的服务可用性与容灾表现 在构建基于大模型的应用时&#xff0c;服务的稳定性是保障业务连续性的基…...

使用 TaoToken CLI 工具一键配置多开发环境接入参数

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 使用 TaoToken CLI 工具一键配置多开发环境接入参数 在团队协作或个人多项目开发中&#xff0c;为不同的 AI 应用工具配置 API 密钥…...

网易云QQ音乐歌词获取终极指南:163MusicLyrics让你轻松拥有完美歌词

网易云QQ音乐歌词获取终极指南&#xff1a;163MusicLyrics让你轻松拥有完美歌词 【免费下载链接】163MusicLyrics 云音乐歌词获取处理工具【网易云、QQ音乐】 项目地址: https://gitcode.com/GitHub_Trending/16/163MusicLyrics 还在为音乐播放器缺少歌词而烦恼&#xf…...

手持式身份核验测温一体机:从防疫工具到智能终端的深度解析与应用

1. 项目概述&#xff1a;一个被低估的“防疫哨兵”你可能在商场、写字楼、医院或者社区的入口见过它——一个看起来像固定电话机&#xff0c;或者一个带屏幕的扫码盒子&#xff0c;旁边还伸出一个测温探头。这就是我们今天要聊的主角&#xff1a;手持式身份核验测温一体机。很多…...