java.util.function 包即是函数式编程的核心
java中四大函数式接口
image.png
函数型接口 Function
一个参数,一个返回值;
Function<String,Integer>的参数为String类型,返回值为Integer类型
import java.util.function.Function;
public class Test {
public static void main(String[] args) {
Function<String,Integer> function = new Function<String, Integer>() {
@Override
public Integer apply(String s) {
return s.length();
}
};
Integer size = function.apply("yinkai");
System.out.println(size);
}
}
断定型接口 Predicate
一个参数,一个布尔类型的返回值
new Predicate<String>()中,参数是String类型
import java.util.function.Predicate;
public class Test {
public static void main(String[] args) {
Predicate<String> predicate = new Predicate<String>() {
@Override
public boolean test(String o) {
return o.isEmpty();
}
};
boolean test = predicate.test("");
System.out.println(test);
}
}
消费型接口 Consumer
一个参数,没有返回值;
new Consumer<String>() 中参数的类型就是String;
import java.util.function.Consumer;
public class Test {
public static void main(String[] args) {
Consumer<String> cusumer = new Consumer<String>() {
@Override
public void accept(String s) {
System.out.println("输出s==>".concat(s));
}
};
cusumer.accept("yinkai");
}
}
#######供给型接口 Supplier
没有 参数,有返回值;
new Supplier<String>()中的String就是返回值类型;
import java.util.function.Supplier;
public class Test {
public static void main(String[] args) {
Supplier<String> supplier = new Supplier<String>() {
@Override
public String get() {
return "hello world";
}
};
String s = supplier.get();
System.out.println(s);
}
}