Bootstrap

JDK8函数式编程compose方法的理解

import java.util.function.Function;

public class Test {
    public static void main(String[] args) {
//        Function<String, Integer> function = new Function<String, Integer>() {
//            @Override
//            public Integer apply(String s) {
//                return Integer.parseInt(s);
//            }
//        };
//        Function<Integer, Integer> function1 = function.compose(new Function<Integer, String>() {
//            @Override
//            public String apply(Integer integer) {
//                return String.valueOf(integer) + 33;
//            }
//        });
        //将匿名内部类改写成Lambda表达式,更符合函数式编程的模式
        Function<String, Integer> function = s -> {
            return Integer.parseInt(s);
        };
        Function<Integer, Integer> function1 = function.compose(integer -> String.valueOf(integer) + 33);

        Integer apply = function1.apply(11);
        System.out.println(apply);
    }
}

##结果分析:函数式编程注主要理解的是行为,关键要理解先执行那一块,此函数先执行String.valueOf(integer)+33拼接字符串,再执行Integer.parseInt(s)转换成Integer类型的值,多用几次就熟练掌握并理解函数式编程思想了##
在这里插入图片描述

;