怎么减少if()---else操作,优化代码

一:提前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();
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值