import java
.util.Comparator
import java
.util.Objects
import java
.util.UUID
import java
.util.concurrent.Callable
import java
.util.function.Consumer
import java
.util.function.Function
import java
.util.function.Predicate
import java
.util.function.Supplier
public class Lambda3 {
@FunctionalInterface
interface Fun {
void foo()
}
public static void main(String[] args) throws Exception {
// Predicates
Predicate<String> predicate = (s) -> s
.length() >
0
predicate
.test(
"foo")
predicate
.negate()
.test(
"foo")
Predicate<Boolean> nonNull = Objects::nonNull
Predicate<Boolean> isNull = Objects::isNull
Predicate<String> isEmpty = String::isEmpty
Predicate<String> isNotEmpty = isEmpty
.negate()
// Functions
Function<String, Integer> toInteger = Integer::valueOf
Function<String, String> backToString = toInteger
.andThen(String::valueOf)
backToString
.apply(
"123")
// Suppliers
Supplier<Person> personSupplier = Person::new
personSupplier
.get()
// Consumers
Consumer<Person> greeter = (p) -> System
.out.println(
"Hello, " + p
.firstName)
greeter
.accept(new Person(
"Luke",
"Skywalker"))
// Comparators
Comparator<Person> comparator = (p1, p2) -> p1
.firstName.compareTo(p2
.firstName)
Person p1 = new Person(
"John",
"Doe")
Person p2 = new Person(
"Alice",
"Wonderland")
comparator
.compare(p1, p2)
comparator
.reversed()
.compare(p1, p2)
// Runnables
Runnable runnable = () -> System
.out.println(UUID
.randomUUID())
runnable
.run()
// Callables
Callable<UUID> callable = UUID::randomUUID
callable
.call()
}
}
转载于:https://www.cnblogs.com/bilaisheng/p/10210915.html