虽然在代码开发过程中是无法避免if-else情况,但我们也不能所有情况都去使用它。 因为代码中大量的使用if-else会让代码的可读性变差。同时if-else的也可以用来分辨这个秃头是不是菜鸟。比如:
新手会这样
public String determineGemder(int input){
if(input == 0){
return "male";
}else if(input == 1){
return "woman";
}else{
return "unknown";
}
}
老鸟会这样
public String determineGemder(int input){
if(input == 0){ return "male"; }
if(input == 1){ return "woman"; }
return "unknown";
}
当然这些都是题外话,现在让我们一起来看看如何解决掉if-else。同样是上述情况下如何处理。
创建枚举类
import java.util.Arrays;
public enum GenderEnum {
MAN(0, "man"),
WOMAN(1, "woman"),
UNKNOWN(3, "UNKNOWN");
private Integer key;
private String type;
public Integer getKey(){ return this.key; }
public String getType(){return this.type;}
GenderEnum(){};
GenderEnum(int key, String type){
this.key = key;
this.type = type;
}
/**
* 根据Key得到枚举的Value 利用流
* @param key
* @return
*/
public static GenderEnum getEnumType(int key) {
return Arrays.asList(GenderEnum.values()).stream()
.filter(genderEnum -> genderEnum.getKey() == key)
.findFirst().orElse(GenderEnum.UNKNOWN);
}
}
使用
public String determineGemder(int input){
return GenderEnum.getEnumType(input).getType();
}
是哪个秃头说就这的?别急,相信我总会有地方用到的。