小编Erw*_*ont的帖子

用于引导 lambda 表达式或方法引用以进行方法链接的实用程序类?

通过 Java 8 中引入的函数式接口,您可以轻松地将不同的表达式链接到一个新表达式中,如下面的代码片段所示。

public class PredicateChaining {
    public static void main(String[] args) {
        // verbose, but standard JDK functionality only
        Predicate<String> allUpperCase = StringUtils::isAllUpperCase;
        Predicate<String> longerThan5 = s -> s.length() > 5;
        if (allUpperCase.and(longerThan5).test("PREDICATE")) {
            System.out.println("'PREDICATE' is a uppercase text, longer than 5.");
        }

        // compact, but with utility method ('chain' in this case)
        if (chain(StringUtils::isAllLowerCase).and(s -> s.length() < 5).test("test")) {
            System.out.println("'test' is a lowercase text, shorter than 5.");
        }
    }

    public static <T> Predicate<T> chain(Predicate<T> test) {
        return …
Run Code Online (Sandbox Code Playgroud)

java lambda method-chaining java-8 method-reference

1
推荐指数
1
解决办法
473
查看次数

标签 统计

java ×1

java-8 ×1

lambda ×1

method-chaining ×1

method-reference ×1