Tag: 方法链接

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

通过Java 8中引入的function接口,您可以轻松地将不同的表达式链接到一个新表达式中,如下面的代码片段所示。 public class PredicateChaining { public static void main(String[] args) { // verbose, but standard JDK functionality only Predicate allUpperCase = StringUtils::isAllUpperCase; Predicate 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 […]

在java中,可以创建一个流畅的可扩展类层次结构,其中的方法可以按任何顺序调用吗?

可以在java中创建一个可扩展的类层次结构,其方法流畅且可以按任何顺序调用吗? (是的!请参阅下面的答案),即使对于现有的课程,如果您无法访问源代码,只要方法是流畅的! 我正在改造现有的层次结构,并希望使用工厂或至少一个通用的构造函数和(最终)不可变的构建器模式(JB P.14)。 设置字段的方法返回void – 它们更好地返回一个通用T – 这样我们就可以获得进行方法链接的能力(它们现在都调用super )。 目标: 1. 避免在每个类中创建静态getFactory()方法。 2. 简单的方法签名。 3. 创建一个通用的工厂方法,但会在编译时捕获问题。 4. 在出错时获取编译时错误而不是运行时错误。 根据要求,非通用代码非常简单,但不起作用。 public class A { private String a = null; protected A setA(String a){ this.a = a; return this;//<== DESIRE THIS TO BE CHAINABLE } protected static A factory(){ return new A(); } } 。 public […]