【发布时间】:2018-12-05 13:08:45
【问题描述】:
为什么下面的代码返回Predicate<String> 而不是boolean?
我的理解是,这里的!s.isEmpty()检查与谓词boolean test(T t);背道而驰,这里的返回类型是boolean。
所以在我的 lambda 中,我的 nonEmptyStringPredicate 不应该是 boolean 类型吗?显然,不是,我只是想了解为什么不是。
Predicate<String> nonEmptyStringPredicate = (String s) -> !s.isEmpty();
【问题讨论】:
-
您似乎混淆了 lambdas 执行/返回 的功能,以及它 实现 的功能接口类型(作为它可以是什么类型的实例使用)。
标签: java lambda java-8 predicate functional-interface