- java.util.function , Java 内置核心四大函数式接口,可以使用lambda表达式
-
Function(函数型接口)
函数类型,有传入的参数,也有返回值,点进源码可以看出:
其中T为参数,R为返回值
代码示例:
public static void main(String[] args) {
//输出输入的数值
Function function = (str)->{
return str;
};
System.out.println(function.apply("hello"));
}
-
Consumer(消费型接口)
消费类型,即只支出没有收入(有传入参数,没有返回值),点进源码查看:
只有传入的参数T,并没有返回值
代码示例:
public static void main(String[] args) {
//Consumer<String> consumer = new Consumer<String>() {
// @Override
// public void accept(String str) {
// System.out.println(str);
// }
//};
//输出传入的参数
Consumer<String> consumer = (str)->{
System.out.println(str);
};
consumer.accept("hello");
}
-
Supplier(供给型接口)
供给类型,即只有返回值,没有参数,点进源码:
只有一个返回值T
代码示例:
public static void main(String[] args) {
//Supplier<Integer> supplier = new Supplier<Integer>() {
// @Override
// public Integer get() {
// System.out.println("get()");
// return 1024;
// }
//};
//输出程序员最喜欢的1024
Supplier<Integer> supplier = ()->{
return 1024;
};
System.out.println(supplier.get());
}
-
Predicate(断定型接口)
有输入也有返回值,但返回值类型为boolean,点进源码:
T为参数,返回值为boolean
代码示例:
public static void main(String[] args) {
//判断字符串是否为空
//Predicate predicate = new Predicate<String>() {
// @Override
// public boolean test(String str) {
// return str.isEmpty();
// }
//};
//判断字符串是否为空
Predicate<String> predicate = (str)->{
return str.isEmpty();
};
System.out.println(predicate.test("hello"));
}
搜索
复制