java consumer接口是什么,讓我們一起了解一下?
Consumer接口是Java一系列函數式接口中的一個,Consumer接口是一個消費型接口,這個接口接收一個泛型的參數T,然后調用accept,對這個參數做一系列的操作,沒有返回值。
Consumer接口的定義是什么?
@FunctionalInterface public?interface?Consumer?{ ? ???? ????void?accept(T?t); ? ????default?Consumer ?andThen(Consumer?super?T>?after)?{ ????????Objects.requireNonNull(after); ????????return?(T?t)?->?{?accept(t);?after.accept(t);?}; ????} }
而且這個接口,接收一個泛型的參數T之后,然后調用accept,對這個參數做一系列的操作,是沒有返回值的。
另外它不是生產一個數據,而是消費一個數據,其數據類型由泛型決定。Consumer接口中包含抽象方法void accept(T t),意為消費一個指定泛型的數據。Consumer接口是一個消費型接口,泛型執行什么類型,就可以使用accept方法消費什么類型的數據。
至于具體怎么消費(使用)需要自定義(輸出,計算…)*/,下面我們用一個簡單的小例子:
public?class?p01Consumer?{ ????/*定義一個方法 ????方法的參數傳遞一個字符串的姓名 ????方法的參數傳遞consumer接口,泛型使用string可以使用Consumer接口消費字符串的姓名 ????*/ ????public?static?void?method(String?name?,?Consumer?con){ ????????con.accept(name); ????} ????public?static?void?main(String[]?args)?{ ????????//調用method方法,傳遞字符串姓名,方法的另一個參數是Consumer接口,是一個函數式接口,所以可以傳遞Lambda表達式 ????????method("趙麗穎",(name)->{ ????????????//對傳遞的字符串進行消費 ????????????//消費方式,直接輸出字符串 ????????????//System.out.println(name); ????????????//消費方式,把字符串進行反轉輸出 ????????????String?reName?=?new?StringBuffer(name).reverse().toString(); ????????????System.out.println(reName); ????????}); ????} }
Consumer接口的實戰操作如下:
public?static?void?main(String[]?args)?{ ????????testConsumer(); ????????testAndThen(); ????} ????/** ?????*?一個簡單的平方計算 ?????*/ ????public?static?void?testConsumer()?{ ????????//設置好Consumer實現方法 ????????Consumer?square?=?x?->?System.out.println("平方計算?:?"?+?x?*?x); ????????//傳入值 ????????square.accept(2); ????} ????/** ?????*?定義3個Consumer并按順序進行調用andThen方法 ?????*/ ????public?static?void?testAndThen()?{ ????????//當前值 ????????Consumer ?consumer1?=?x?->?System.out.println("當前值?:?"?+?x); ????????//相加 ????????Consumer ?consumer2?=?x?->?{?System.out.println("相加?:?"?+?(x?+?x));?}; ????????//相乘 ????????Consumer ?consumer3?=?x?->?System.out.println("相乘?:?"?+?x?*?x); ????????//andThen拼接 ????????consumer1.andThen(consumer2).andThen(consumer3).accept(1); ????}
以上就是小編今天的分享了,希望可以幫助到大家。