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 , Consumercon){ 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实现方法 Consumersquare = 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); }
以上就是小编今天的分享了,希望可以帮助到大家。