在日常开发中,业务中会涉及多个if-else的情况,如何进行优化呢?
提前return
处理前:
public String getValue(String text) {
if (text != null) {
//处理业务的代码
} else {
return null;
}
return "业务处理后的结果";
}
处理后:
public String getValue1(String text){
if (text.isEmpty()) {
return null;
}
//处理业务的代码
return "处理业务后的结果";
}
使用三元表达式
public String getValue2(String text) {
//处理业务的代码
return text.isEmpty() ? null : "处理业务要返回的结果";
}
使用枚举
package com.cheng;
/**
* @author chengXueHao
* @version 1.0
* @date 2022/8/8 22:51
*/
public enum DEMo {
PS("ps", "这是处理照片的软件"),
PR("pr", "这是视频处理的软件"),
;
private String app;
private String dec;
DEMo(String app, String dec) {
this.app = app;
this.dec = dec;
}
public String getApp() {
return app;
}
public void setApp(String app) {
this.app = app;
}
public String getDec() {
return dec;
}
public void setDec(String dec) {
this.dec = dec;
}
static DEMo of(String app) {
for (DEMo temp : DEMo.values()) {
if (temp.getApp() == app) {
return temp;
}
}
return null;
}
}
package com.cheng;
/**
* @author chengXueHao
* @version 1.0
* @date 2022/8/8 22:58
*/
public class EnumDemo {
public String getDecs(String app){
return DEMo.of(app).getDec();
}
}
当出现三条以上if- else时,并且是已知所有情况,使用switch能更大的提高执行效率。
public static void demo(String type) {
if (type.isEmpty()) {
System.out.println("这是一个空字符串:" + type);
}
switch (type) {
case "周卡":
//(可以做一定的业务处理)
System.out.println("周卡");
break;
case "月卡":
System.out.println("月卡");
break;
case "季卡":
System.out.println("季卡");
break;
case "年卡":
System.out.println("年卡");
break;
default:
System.out.println("普通用户");
break;
}
}