java.util.function , Java 内置核心四大函数式接口标准写发和lambda表达式
消费型接口,有一个输入参数,没有返回值
public static void main(String[] args) {
// Consumer<String> consumer = new Consumer<String>() {
// @Override
// public void accept(String s) {
//
// }
// };
// 简写
Consumer<String> consumer = s -> { System.out.println(s);};
consumer.accept("abc");
}
供给型接口,没有输入参数,只有返回参数
public static void main(String[] args) {
// Supplier<String> supplier = new Supplier<String>() {
// @Override
// public String get() {
// return null;
// }
// };
// 简写
Supplier<String> supplier = ()->{return "abc";};
System.out.println(supplier.get());
}
函数型接口,有一个输入,有一个输出
public static void main(String[] args) {
// 函数式接口,可以改为 lambda 表达式
//Function<String,Integer> function = new Function<String, Integer>() {
// @Override
// public Integer apply(String s) {
// return 1024;
// }
//};
// 简写
Function<String,Integer> function = s->{return s.length();};
System.out.println(function.apply("abc"));
}
断定型接口,有一个输入参数,返回只有布尔值。
public static void main(String[] args) {
//Predicate<String> predicate = new Predicate<String>() {
// @Override
// public boolean test(String s) {
// return false;
// }
//};
// 简写
Predicate<String> predicate = s -> {return s.isEmpty();};
System.out.println(predicate.test("abc"));
}