一、核心函数式接口
(1)、Consumer
消费型接口 ,传递参数,使用参数做一个处理。没有返回值
底层源码
@FunctionalInterface
public interface Consumer<T> {
void accept(T var1);
default Consumer<T> andThen(Consumer<? super T> var1) {
Objects.requireNonNull(var1);
return (var2) -> {
this.accept(var2);
var1.accept(var2);
};
}
}
案例
public static void main(String[] args) {
String str = "Hello World";
Consumer<String> consumer = (String s) -> {
str.length();
};
consumer.accept(str);
}
//======================================
public static void main(String[] args) {
String str = "Hello world";
Consumer<String> c1 = ((String s1 )-> System.out.println(s1.length()));
Consumer<String> mc1 = (String s1)->{
System.out.println(s1.length());
};
Consumer<String> mc2 = (String s1)->{
System.out.println(s1.toUpperCase());
};
Consumer<String> mc3 = s1->{
System.out.println(s1.substring(0,5));
};
// mc2.accept(str);
mc1.andThen(mc2.andThen(mc3)).accept(str);
(2)、Supplier
供给型接口, 无需要传递参数,返回对象
底层源码
@FunctionalInterface
public interface Supplier<T> {
T get();
}
案例
public static void main(String[] args) {
Supplier<Integer> supplier = ()->{
return new Random(1