函数式接口的作用
简化编程模型,在新版本的框架底层中会大量的使用,配合Lambda表达式,其一是学会读懂框架底层代码,其二是学习这种开发规范
Java中内置的四种函数式接口,因为这四种函数式会经常用到,所以就直接用即可,重中之重是要了解这四种函数式接口的各自的特点
Function函数型接口
一、了解函数式接口
Function函数式接口,一般都有一个输入参数和一个输出参数,以Function接口为例,输入一个T,返回一个R
二、特性
只要是函数式接口,都可以用lambda表达式进行简化
三、用Lambda表达式演进过程
1、匿名内部类,new函数式接口
public class Demo01 {
//匿名内部类的方式,new接口,里面重写接口中的方法
Function<String,Object> function = new Function<String,Object>() {
@Override
public Object apply(String str) {
return str;
}
};
}
2、Lambda表达式替换函数式接口
public class Demo01 {
public static void main(String[] args) {
//Lambda表达式简化匿名内部类
Function<String,Object> function = (str)->{return str;};
System.out.println(function.apply("张三"));
}
}
Predicate断定型接口
一、了解断定型接口
该类接口只有一个输入参数,并且也是一个函数式接口,他唯一的方法的返回值是布尔类型
二、使用这类接口的作用(使用Lambda表达式进行了简化)
该类接口可以帮我们做一些传递的参数的校验
public class Demo02 {
public static void main(String[] args) {
//可以通过断定型接口,对字符串进行非空的校验(样例而已)
Predicate<String> predicate = (str)->{
return str.isEmpty();
};
System.out.println(predicate.test("张三"));
}
}
Supplier供给型接口
一、认识Supplier供给型接口
供给型接口,没有传递任何参数,只有返回值
二、使用方法(使用Lambda表达式进行了简化)
可以用来给某些方法提供一些数据
public class Demo04 {
public static void main(String[] args) {
Supplier<String> supplier =()->{
return "张三";
};
System.out.println(supplier.get());
}
}
Consumer消费型接口
一、认识consumer消费型接口
消费型接口顾名思义,只有输入参数,但是没有返回值
二、使用方法(使用Lambda表达式进行了简化)
可以用来打印字符串等操作
public class Demo03 {
public static void main(String[] args) {
Consumer<String> consumer = (str)->{
System.out.println(str);
};
consumer.accept("张三");
}
}
至此,函数式接口介绍到此结束,欢迎Java全干工程师交流学习!