首页 > 文章列表 > 如何使用Java内置的函数式接口?

如何使用Java内置的函数式接口?

java
387 2023-05-03

1、Predicate是参数的布尔函数。该接口提供了许多默认函数,以组合复杂的逻辑操作(和,非)。

Predicate<String> predicate = (s) -> s.length() > 0;
 
predicate.test("foo");              // true
predicate.negate().test("foo");     // false
 
Predicate<Boolean> nonNull = Objects::nonNull;
Predicate<Boolean> isNull = Objects::isNull;
 
Predicate<String> isEmpty = String::isEmpty;
Predicate<String> isNotEmpty = isEmpty.negate();

2、Function接收参数以产生结果。默认方法可用于多种方法构成的方法链。

Function<String, Integer> toInteger = Integer::valueOf;
Function<String, String> backToString = toInteger.andThen(String::valueOf);
 
backToString.apply("123");     // "123"

3、Supplier根据给定的类属性生成对象,Supplier不支持输入参数。

Supplier<Person> personSupplier = Person::new;
personSupplier.get();   // new Person