IT科技

當前位置 /首頁/IT科技 > /列表

consumer接口,java

<link rel="stylesheet" href="https://js.how234.com/third-party/SyntaxHighlighter/shCoreDefault.css" type="text/css" /><script type="text/javascript" src="https://js.how234.com/third-party/SyntaxHighlighter/shCore.js"></script><script type="text/javascript"> SyntaxHighlighter.all(); </script>

java consumer接口是什麼,讓我們一起了解一下?

Consumer接口是Java一系列函數式接口中的一個,Consumer接口是一個消費型接口,這個接口接收一個泛型的參數T,然後調用accept,對這個參數做一系列的操作,沒有返回值。

Consumer接口的定義是什麼?

@FunctionalInterfacepublic interface Consumer<T> {         void accept(T t);     default Consumer<T> andThen(Consumer<? super T> after) {        Objects.requireNonNull(after);        return (T t) -> { accept(t); after.accept(t); };    }}

而且這個接口,接收一個泛型的參數T之後,然後調用accept,對這個參數做一系列的操作,是沒有返回值的。

java consumer接口

另外它不是生產一個數據,而是消費一個數據,其數據類型由泛型決定。Consumer接口中包含抽象方法void accept(T t),意為消費一個指定泛型的數據。Consumer接口是一個消費型接口,泛型執行什麼類型,就可以使用accept方法消費什麼類型的數據。

至於具體怎麼消費(使用)需要自定義(輸出,計算…)*/,下面我們用一個簡單的小例子:

public class p01Consumer {    /*定義一個方法    方法的參數傳遞一個字符串的姓名    方法的參數傳遞consumer接口,泛型使用string可以使用Consumer接口消費字符串的姓名    */    public static void method(String name , Consumer<String> 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<Integer> square = x -> System.out.println("平方計算 : " + x * x);        //傳入值        square.accept(2);    }    /**     * 定義3個Consumer並按順序進行調用andThen方法     */    public static void testAndThen() {        //當前值        Consumer<Integer> consumer1 = x -> System.out.println("當前值 : " + x);        //相加        Consumer<Integer> consumer2 = x -> { System.out.println("相加 : " + (x + x)); };        //相乘        Consumer<Integer> consumer3 = x -> System.out.println("相乘 : " + x * x);        //andThen拼接        consumer1.andThen(consumer2).andThen(consumer3).accept(1);    }

TAG標籤:接口 consumer java #