1.四大函数式接口
消费型接口:Consumer<T>
只有一个输入参数并且无返回值;
使用:
public class Demo {
public static void main(String[] args) {
Data data = new Data();
data.consumer();
}
}
class Data{
public void consumer() {
handle(6, (x)-> System.out.println(x));
}
public void handle(int value, Consumer<Integer> consumer) {
consumer.accept(value);
}
}
供给型接口:Supplier<T>
无输入参数,返回一个结果。
使用:
public class Demo {
public static void main(String[] args) {
Data data = new Data();
System.out.println(data.supplier());
}
}
class Data{
public String supplier() {
return test( ()-> "hello" );
}
public String test( Supplier<String> supplier) {
return supplier.get();
}
}
函数型接口:Function<T,R>
接受一个输入参数T,返回一个结果R
使用:
public class Demo {
public static void main(String[] args) {
Function<String,Integer> function = (str)->{return str.length();};
System.out.println(function.apply("a45645646"));
}
}
断言型接口:Predicate<T>
接受一个输入参数T,返回一个布尔值结果
使用:
public class Demo {
public static void main(String[] args) {
Data data = new Data();
// 判断是否是手机号
boolean valid = data.valid("17610989843", x -> !x.isEmpty() && x.length()==11);
System.out.println(valid);
}
}
class Data{
public boolean valid(String name, Predicate<String> predicate) {
return predicate.test(name);
}
}
来源:CSDN
作者:去吧!小火龙
链接:https://blog.csdn.net/weixin_40307709/article/details/104704335