Java开发中使用映射关系取代if-else

367 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路

本文已参与「新人创作礼」活动,一起开启掘金创作之路

本文已参与「新人创作礼」活动,一起开启掘金创作之路

本文已参与「新人创作礼」活动,一起开启掘金创作之路

本文已参与「新人创作礼」活动,一起开启掘金创作之路

==if-else在使用的过程中语句长,并且不利于测试和维护==所以我们在日常的开发中尽量不使用if-else

开发测试用例背景 根据你输入的颜色传出对应的RGB值

颜色RGB值
red#FF0000
blue#0000FF
white#FFFFFF

写一个color的实体类

@Data
public class ColorA {
    private String colorCode;
    private String color;
}

主类

@Test
    void contextLoads() {
        ColorA colorA = new ColorA();
        colorA.setColor("blue");
        System.out.println(colorA.getColor()+"的RGB值为:"+colorCode(colorA.getColor()));

    }

如果在colorCode方法中使用if-else

	/*
	* 使用if-else方法判断颜色的RGB值
	* */
	String colorCode(String color){
	
	    String colorCode = new String();
	    if (color.equals("red")){
	        colorCode="#FF0000";
	    }else if (color.equals("blue")){
	        colorCode="#0000FF";
	    }else if (color.equals("white")){
	        colorCode="#FFFFFF";
	    }
	    return colorCode;
	}

==如果在colorCode方法中使用映射==

    /*
    * 使用hashmap通过key来取对应的value值
    * */
    String colorCode(String color){
        String colorCode = new String();
        HashMap<String, String> codeMap = new HashMap<>();
        codeMap.put("red","#FF0000");
        codeMap.put("blue","#0000FF");
        codeMap.put("whiteM","#FFFFFF");
        return codeMap.get(color);
    }

运行结果 运行结果

结果显示,两种方法都能达到开发目的,但是使用if-else代码量比hashmap多,如果需要添加一个颜色的话,使用hashmap的方法只要使用put就可以完成添加,而if-else就比较繁琐了。