函数式接口:只有一个抽象方法的接口就是函数式接口
只要是函数式接口就可以使用Lambda表达式简化代码
使用函数式接口能简化编程模型
Function
函数型接口Function:有一个输入参数,有一个返回值
举例:
public class FunctionTest {
public static void main(String[] args) {
// Function function = new Function<String,String>() {
// @Override
// public String apply(String str) {
// System.out.println("apply()");
// return str;
// }
// };
Function function = (str)->{
// Lambda表达式
System.out.println("apply()");
return str;
};
System.out.println(function.apply("hello world"));
}
}
结果:
apply()
hello world
Predicate
断定型接口Predicate:有一个输入参数,返回一个布尔值
举例:
public class PredicateTest {
public static void main(String[] args) {
// Predicate<String> predicate = new Predicate<String>() {
// @Override
// public boolean test(String str) {
// return str.isEmpty();
// }
// };
Predicate<String> predicate = (String str)->{
return str.isEmpty();
};
System.out.println(predicate.test("hello world"));
}
}
结果:
false
Consumer
消费型接口Consumer:有一个输入参数,没有返回值
举例:
public class ConsumerTest {
public static void main(String[] args) {
// Consumer<String> consumer = new Consumer<String>() {
// @Override
// public void accept(String s) {
// System.out.println(s);
// }
// };
Consumer<String> consumer = (s)->{
System.out.println(s); };
consumer.accept("hello world");
}
}
结果:
hello world
Supplier
供给型接口Supplier:没有输入参数,有一个返回值
举例:
public class SupplierTest {
public static void main(String[] args) {
// Supplier<Integer> supplier = new Supplier<Integer>() {
// @Override
// public Integer get() {
// System.out.println("get()");
// return 1024;
// }
// };
Supplier<Integer> supplier = ()->{
System.out.println("get()");
return 1024;
};
System.out.println(supplier.get());
}
}
结果:
get()
1024
转载:https://blog.csdn.net/weixin_43912697/article/details/114364501
查看评论