1. Predicate is a Boolean function of parameters. The interface provides a number of default functions to combine complex logical operations (AND, NOT).
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 receives parameters to produce results. Default methods can be used in method chains consisting of multiple methods.
Function<String, Integer> toInteger = Integer::valueOf;
Function<String, String> backToString = toInteger.andThen(String::valueOf);
backToString.apply("123"); // "123"3. Supplier generates objects based on given class attributes. Supplier does not support input parameters.
Supplier<Person> personSupplier = Person::new; personSupplier.get(); // new Person
The above is the detailed content of What built-in functional interfaces does Java have?. For more information, please follow other related articles on the PHP Chinese website!