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