java太臃肿_Java简洁开发技巧,减少繁琐臃肿的代码
Java简洁开发技巧,减少繁琐臃肿的代码
Szx • 2020 年 12 月 09 日
消除if...else的方法
在项目实际开发中使用if...else判断的场景非常多,上面只是其中几种场景。下面再列举一下,其他常见的场景。
1.根据不同的数字返回不同的字符串public String getMessage(int code) {
if (code == 1) {
return "成功!";
} else if (code == -1) {
return "失败!";
} else if (code == -2) {
return "网络超时!";
} else if (code == -3) {
return "参数错误!";
}
throw new RuntimeException("code异常!");
}
使用枚举可以轻松替换掉上面那段代码public enum MessageEnum {
SUCCESS(1, "成功!"),
FAIL(-1, "失败!"),
TIME_OUT(-2, "网络超时!"),
PARAM_ERROR(-3, "参数错误!");
private int code;
private String message;
MessageEnum(int code, String message) {
this.code = code;
this.message = message;
}
public int getCode() {
return this.code;
}
public String getMessage() {
return this.message;
}
//jdk1.8的写法
public static MessageEnum getMessageEnum(int code) {
return Arrays.stream(MessageEnum.values()).filter(x -> x.code == code).findFirst().orElse(null);
}
//jdk1.8以下MessageEnum办法的写法
/*
public static MessageEnum getMessageEnum(int code) {
for (MessageEnum messageEnum : MessageEnum.values()) {
if (code == messageEnum.code) {
return messageEnum;
}
}
return null;
}
*/
}
调用方法public String getMessage(int code) {
MessageEnum messageEnum = MessageEnum.getMessageEnum(code);
return messageEnum.getMessage();
}
三目运算符替换简单判断
例如这种简单的if判断方法public String getMessage2(int code) {
if(code == 1) {
return "成功";
}
return "失败";
}
替换为三目运算符public String getMessage2(int code) {
return code == 1 ? "成功" : "失败";
}
判断是否为null
java中自从有了null之后,很多地方都要判断实例是否为null,不然可能会出现NPE的异常。public String getMessage7(int code) {
return code == 1 ? "成功" : "失败";
}
public String getMessage3(int code) {
Test test = null;
return test.getMessage2(1);
}
如果这段代码不判断异常,运行时就会出现java.lang.NullPointerException异常,所以我们平时都要提前判断一下public String getMessage8(int code) {
Test test = null;
if (test != null) {
return test.getMessage2(1);
}
return null;
}
Optional解决空指针问题
Optional 是 Java 实现函数式编程的强劲一步,并且帮助在范式中实现。但是 Optional 的意义显然不止于此。
从 Java 8 引入的一个很有趣的特性是 Optional 类。Optional 类主要解决的问题是臭名昭著的空指针异常(NullPointerException) —— 每个 Java 程序员都非常了解的异常。
本质上,这是一个包含有可选值的包装类,这意味着 Optional 类既可以含有对象也可以为空。
可以使用Optional来解决空指针异常问题public String getMessage8(int code) {
Test test = null;
Optional testOptional = Optional.of(test);
return testOptional.isPresent() ? testOptional.get().getMessage2(1) : null;
}
java太臃肿_Java简洁开发技巧,减少繁琐臃肿的代码相关推荐
- java 2d 教程_Java 2D开发技巧之“灯光与阴影”
Java 2D开发技巧之"灯光与阴影" (2016-12-14 02:12:25) 标签: 杂谈 一. 引言 在本文中,我们将向你展示如何为扁平形状添加一种灯光效果以实现一种类3D ...
- java web开发技巧_java web开发技巧
1 java web开发技巧 java学习没有诀窍,也没有捷径.只有脚踏实地学好java知识,把理论知识灵活运用实践,多学,多问,多操作,只要这样才能真正成为java编程高手.下面小编给大家说说jav ...
- java web试题_Java web开发经典面试题汇总(内附答案详解)
原标题:Java web开发经典面试题汇总(内附答案详解) 1.说出Servlet 的生命周期,并说出Servlet 和CGI 的区别? 答:Web 容器加载Servlet 并将其实例化后,Servl ...
- java项目流程_Java项目开发全流程实践
文章导读 [项目遵循需求分析.程序设计.编码.测试.运行标准开发过程, 从分析项目问题入手,提出解决方案,应用对象建模工具UML设计系统,依据设计文档进行编码.] 问题描述:实现一个简单的四则运算器. ...
- java性能瓶颈分析_Java性能优化技巧整理,做一个深度的程序员
原标题:Java性能优化技巧整理,做一个深度的程序员 在我们身边是一大批的程序员,层次不一,但是放眼观,我们很容易就可以看到那些是业务型程序员,那些是有层次的程序员.注重细节,注重性能,做一个有深度的 ...
- java系统教程_Java 教程(开发环境配置+基础语法)
Java 开发环境配置 在本章节中我们将为大家介绍如何搭建Java开发环境. window系统安装java 下载JDK 首先我们需要下载java开发工具包JDK,下载地址:http://www.ora ...
- java vector编程_Java编程开发中向量(Vector)及其应用
要学习Java编程开发中向量及其应用方面的知识就要先了解什么是向量,向量是如何声明及初始化的,下面就让IT培训网专家来给大家详细介绍下如何认识向量及其使用方法吧! 关于向量的介绍: 向量 vector ...
- java 记事本 新建_java记事本开发
今天我想要分享的是一个用java写的一个记事本程序.我知道现在市面上有各种各样的记事本了,但是我发现有的写的功能不够完善,或者是代码层次结构不够清晰,有的甚至看了之后云里雾里的,有的还不乏了非常明显的 ...
- web开发的java语言步骤_java web开发入门一(servlet和jsp)基于eclispe
servlet 用java语言开发动态资源网站的技术,在doGet方法中拼接显示html,在doPost方法中提交数据.类似于.net的ashx技术. servlet生成的class文件存放在tomc ...
最新文章
- 为什么你今年的去哪儿产品经理面试挂了?
- 微服务Apache ServiceComb 数据一致性Saga演进介绍
- Golang GOPATH 包
- python导包路径问题_python的导包问题
- php鼠标悬停显示图片,鼠标滑过出现预览的大图提示效果
- ASP.NET中的两个Cookie类:HttpCookie类与Cookie类
- ruby 数据类型Symbol
- PCD与STL格式及其内涵
- Java方法 根据经纬度计算距离
- 禁止电信远程控制服务器自动下发修改光猫配置信息
- Velodyne Lidar Inc.宣布与禾赛光电科技签订专利许可协议
- 使用VMware虚拟机通过Panabit抓取爱快虚拟机PPPoE报文
- wifi服务器延迟高,网络延时高(网络延迟高怎么办(家里WIFI延迟高,教你几招搞定网络延迟))...
- 安卓 ANR 原因,解决方法
- 管理之旅(01)游学阿里
- [WSL2]WSL2迁移虚拟磁盘文件ext4.vhdx
- Linux运维部落 DNS服务,Linux运维部落
- ROS项目开发流程、框架
- Webview相关属性和事件处理
- SAP CO 成本的分配