java consumer接口

作者:原创时间:2022-03-26
文档

java consumer接口是什么,让我们一起了解一下?

Consumer接口是Java一系列函数式接口中的一个,Consumer接口是一个消费型接口,这个接口接收一个泛型的参数T,然后调用accept,对这个参数做一系列的操作,没有返回值。

Consumer接口的定义是什么?

@FunctionalInterface
public interface Consumer {
 
    
    void accept(T t);
 
    default Consumer andThen(Consumer 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);
    }

以上就是小编今天的分享了,希望可以帮助到大家。

显示全文
统一和康师傅是哪国的 怎么删掉word中的空白页 微信笔记在哪里编辑 椰子怎么挑 蟑螂最怕三种克星 毛尖属于什么茶 微信铃声怎么设置自己的歌 怎么确认微信还在不在电脑端 河南过年的风俗有哪些 丽水市是哪个省 微信怎么改密码 java containskey 饺子的来历 耗子和老鼠的区别 win10怎么关闭自动更新 福尔马林的主要成分 win10怎么设置定时关机 手机qq怎么退出登录 word转pdf怎么转 qq消息不提醒了怎么办 java const 复活节的由来 java console.log java console java config java compiler java comparable接口 java commandline 山楂干泡水最佳搭配 java comet java combobox java color java collections java collect java clone() java clob java classloader java class.forname java class java cipher