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 '\0';
    }

總結

  1. 有輸入並處理,無輸出,用消費型接口(Consumer< T >)
  2. 無輸入,有輸出,用供給型接口(Supplier< T >)
  3. 有輸入並有處理輸出,用函數式型接口(Function<T,R>)
  4. 無輸入,處理判斷條件並輸出布爾類型(true or false),用斷言型接口(Predicate< T >)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM