Function optimizes a large number of if else (case 1)

Function(Function<T, R> ) can be regarded as a conversion function, which has an input parameter T and a return parameter R.

package com;

import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import java.util.function.Function;

public class Function1Test {
    
    
    private static Map<String, Function<String,String>> map = new HashMap();
    public static void main(String[] args) {
    
    
        init();
        String type = "a";
//        if(type.equals("a")){
    
    
//            func01("A","B");
//        } else if(type.equals("b")){
    
    
//            func02("C","D");
//        }else if(type.equals("c")){
    
    
//            func03("E","F");
//        }else if(type.equals("d")){
    
    
//            func03("G","H");
//        }
        map.get(type).apply("A");
    }

    private static void init() {
    
    
        map.put("a",Function1Test::func01);
        map.put("b",Function1Test::func02);
        map.put("c",Function1Test::func03);
        map.put("d",Function1Test::func04);
    }

    public static String func01(String... str){
    
    
        System.out.println("================func01==============="+ Arrays.toString(str));
        return "func01";
    }

    public static String func02(String... str){
    
    
        System.out.println("================func02==============="+ Arrays.toString(str));
        return "func02";
    }

    public static String func03(String... str){
    
    
        System.out.println("================func03==============="+ Arrays.toString(str));
        return "func03";
    }

    public static String func04(String... str){
    
    
        System.out.println("================func04==============="+ Arrays.toString(str));
        return "func04";
    }
}

Guess you like

Origin blog.csdn.net/xiaowanzi_zj/article/details/131880560