java8新特性—四大内置核心接口

java8新特性—四大内置核心接口

四大内置核心接口

//消费型接口
Consumer<T>:: vode accept(T t);
//供给型接口
Supplier<T>:: T get();
//函式型接口
Function<T,R>:: R apply(T t);
//断言型接口
Predicate<T>:: boolean test(T t);

消费型接口

 @Test
    public void test() {
        addMoney(20, (m) -> System.out.println(m + 20));
    }

    private void addMoney(Integer money, Consumer<Integer> con) {
        con.accept(money);
    }

供给型接口

 @Test
    public void test() {
       List<Integer> list =  getMoney(5, () -> (int) (Math.random() * 5));
        for (Integer integer : list) {
            System.out.println(integer);
        }
    }

    private List<Integer> getMoney(Integer nums, Supplier<Integer> sp) {
        List<Integer> list = new ArrayList<Integer>(0);
        for (int i = 0; i < nums; i++) {
            Integer n = sp.get();
            list.add(n);
        }
        return list;
    }

函数式型接口

    @Test
    public void test3() {
        System.out.println(strHandle("  lll lll ccc ccc  ", String::trim));
    }
    private String strHandle(String str, Function<String,String> function) {
       return function.apply(str);
    }

断言型接口

 @Test
    public void test4() {
        System.out.println(filterStr("holle",(e) -> e.equals('l')));
    }
    private Character filterStr(String str, Predicate<Character> pt) {
        char[] chars = str.toCharArray();
        for (char aChar : chars) {
            if (pt.test(aChar)) {
                return aChar;
            }
        }
        return '';
    }

总结

  1. 有输入并处理,无输出,用消费型接口(Consumer< T >)
  2. 无输入,有输出,用供给型接口(Supplier< T >)
  3. 有输入并有处理输出,用函数式型接口(Function<T,R>)
  4. 无输入,处理判断条件并输出布尔类型(true or false),用断言型接口(Predicate< T >)
原文地址:https://www.cnblogs.com/Lollipop_Hsu/p/11481766.html