一:提前return,减少else
如果 if-else 代码块包含 return 语句,可以考虑通过提前 return,把多余 else 干掉.
代码举例子:
更改之前:
if (condition1) { if (condition2) { return getSomething(); } else { return 0; }
} else { return 0; }
更改之后
//这里最好对这个flag所判断的逻辑补充注释进行描述 boolean flag = !condition1 || (condition1 && !
condition2) if(flag) { return 0; } if (condition1 && condition2) { return
getSomething(); }
二:使用三元运算符
代码举例:
更改前:
int price ; if(condition){ price = 80; }else{ price = 100; }
更改后:
int price ; int price = condition?80:100;
三:使用Java8的新特性Optional判断是否为null
代码举例:
更改前:
String str = "xxxxx"; if (str != null) { System.out.println(str); } else {
System.out.println("Null"); }
更改后:
Optional<String> strOptional = Optional.of("xxxxx"); strOptional.
ifPresentOrElse(System.out::println, () -> System.out.println("Null"));
四:使用枚举减少if --else
代码举例:
更改前:
String OrderStatusDes; if(orderStatus==0){ OrderStatusDes ="订单未支付"; }else if(
OrderStatus==1){ OrderStatusDes ="订单已支付"; }else if(OrderStatus==2){
OrderStatusDes="已发货"; } ...
更改后:(先定义一个枚举)
public enum OrderStatusEnum { UN_PAID(0,"订单未支付"),PAIDED(1,"订单已支付"),SENDED(2,
"已发货"),; private int index; private String desc; public int getIndex() { return
index; } public String getDesc() { return desc; } OrderStatusEnum(int index,
String desc){ this.index = index; this.desc =desc; } OrderStatusEnum of(int
orderStatus) { for (OrderStatusEnum temp : OrderStatusEnum.values()) { if (temp.
getIndex() == orderStatus) { return temp; } } return null; } }
有了枚举之后,以上 if-else 逻辑分支,可以优化为一行代码:
String OrderStatusDes = OrderStatusEnum.0f(orderStatus).getDesc();

技术
©2019-2020 Toolsou All rights reserved,
PYTHON入门期末复习汇总Python+OpenCV人脸识别技术详解员工网上晒腾讯年终奖:每人100股公司股票 价值超6万元!中国最长高铁正式开通!跑完全程最快30.5小时Unity 场景异步加载(加载界面的实现)NOI2019 游记用C++跟你聊聊“原型模式” (复制/拷贝构造函数)比尔·盖茨:疫情后彻底恢复正常可能要到2022年末这些歌,程序员千万万万万别听!随机森林篇 R语言实现