包名:package java.util.function;
函数式接口:只有一个方法的接口
四大函数型接口
1.function 函数型接口 @FunctionalInterface是函数接口注解 传入参数T,返回参数R
package function;
import java.util.function.Function;
/**
-
function 函数型接口
*/
public class TestFunction {
public static void main(String[] args) {
// Function<String, String> function = new Function<String, String>() {
// @Override
// public String apply(String o) {
// return o;
// }
// };
// System.out.println( function.apply(“kang”));//凡是函数型接口都可以用lambda表达式 Function<String, String> function = (o)->{return o;}; System.out.println(function.apply("kang"));
}
}
Predicate 断定型函数式接口 传入参数T,返回布尔值
/**
- 断定型接口
*/
public class TestPredicate {
public static void main(String[] args) {
// Predicate predicate = new Predicate() {
// @Override
// public boolean test(String o) {
// return o.isEmpty();
// };
// };
//替换成lambda
Predicate predicate= o-> o.isEmpty();
System.out.println(predicate.test(“kang”));
}
}
consumer 消费型接口 传入参数,没有返回值
import java.util.function.Consumer;
public class TestConsumer {
public static void main(String[] args) {
// Consumer c = new Consumer() {
// @Override
// public void accept(String o) {
// System.out.println(o);
// }
// };
// //替换lambda
Consumer c =(o)->{ System.out.println(o);};
c.accept(“kang”);
}
}
4
supplier 供给型接口 没有参数,有返回值
package function;
import java.util.function.Supplier;
public class TestSupply {
public static void main(String[] args) {
// Supplier supplier1 = new Supplier() {
// @Override
// public String get() {
// return “kang”;
// }
// };
Supplier supplier1 =()->{return “kang”;};
System.out.println(supplier1.get());
}
}