package com.chunzhi.Test05Consumer; import java.util.function.Consumer; /* java.util.function.Consumer<T>接口正好與Supplier接口相反 它不是生產一個數據,而是消費一個數據,其數據類型由泛型決定 Consumer接口中包含抽象方法void accept(T t),意為消費一個指定泛型的數據。 Consumer接口是一個消費型接口,泛型指定什么類型,就可以使用accept方法消費什么類型的數據 至於具體怎么消費(使用),需要自定義 */ public class Test01Consumer { /* 定義一個方法 方法的參數傳遞一個字符串的姓名 方法的參數傳遞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("八級大狂風", (String name) -> { // 對傳遞的字符串進行消費 // 消費方式:直接輸出字符串 System.out.println(name); // 消費方式:把字符串反轉輸出 String reName = new StringBuffer(name).reverse().toString(); System.out.println(reName); }); } }
