Consumer
函数式接口介绍
从JDK8开始java支持函数式编程,JDK也提供了几个常用的函数式接口,例如Consumer接口。函数式接口(Functional Interface)就是一个有且仅有一个抽象方法,但是可以有多个非抽象方法的接口。Java为函数式接口引入了一个新注解@FunctionalInterface,主要用于函数式接口编译级错误检查。函数式接口可以被隐式转换为lambda表达式。
查看源码
package java.util.function;
import java.util.Objects;
@FunctionalInterface
public 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); };
}
}
测试
import java.util.function.Consumer;
public class Test {
public static void printInfo(String[] strArr, Consumer<String> con1, Consumer<String> con2){
for (int i = 0; i < strArr.length; i++) {
con1.andThen(con2).accept(strArr[i]);
}
}
public static void main(String[] args) {
String[] strArr = {"费哥哥,女","欢欢姐,女","娇娇妹,女"};
printInfo(strArr,(message)->{
System.out.print("姓名:" + message.split(",")[0] + "。 ");
},(message)->{
System.out.println("性别:" + message.split(",")[1] + "。");
});
}
}
结果:
姓名:费哥哥。 性别:女。
姓名:欢欢姐。 性别:女。
姓名:娇娇妹。 性别:女。