1
我刚开始在this Oracle website上查看流。立即看到下面的代码的一个问题是:如果我想重用过滤器逻辑,例如有个人的方法是“isAdult”吗?使用具有自定义功能接口的流
由于它不接受参数Person,因此这不适用于流作为方法引用。类似地,我将无法创建一个筛选器,它接受和使用年龄创建可参数化的“isOlderThan”逻辑的附加int参数。
我找不到一种方式将流与定制的功能接口一起使用。你会如何模拟这种行为?我觉得在上面的场景中创建一个静态的“isAdult”方法不是一个非常干净的解决方案,也不是用这种方法创建一个“PersonChecker”对象。
List<Person> list = roster.parallelStream().filter((p) -> p.getAge() > 18).collect(Collectors.toList());
谢谢
谢谢,并为这个微不足道的问题道歉,它来自方法引用(我尝试使用p :: isAdult)的一个不相关的误解,加上错误的想法,因为谓词“测试”方法接受1参数,所以必须由拉姆达。 – user1578796