我应该使用Guava Predicate还是Java Predicate?

Eug*_*e S 2 java predicate guava

据我所知,Guava中的Predicates是为了填补Java中的差距而创建的,之后在Java 8中引入了Predicates.现在,当Java中有这样的功能时,使用Guava Predicates仍然有意义吗?这有什么附加价值吗?

fge*_*fge 10

如果您有机会使用Java 8,那么"去吧".

从历史上看,Guava确实已经定义了Predicate或者Function其他类似的"功能接口"(现在称之为),早在Java 8甚至正式化之前; 实际上,它们是一样的.

然而,不同的是Java 8带来了充分利用JSR 292的强大功能的语法,这就是为什么Objects::nonNull它是有效的(java.util.function.)Predicate<Object>.

因此,虽然Guava在很多方面"早于"Java 8,但是如果你使用Java 8,那么使用Java 8.使用Java的函数,而不是Guava的等等.如果你已经有了Guava的这样的实例接口,您可以轻松地在Java 8中重用它们; 例如,给定一个Guava Predicate,将其转换为Java 8谓词就像:

myPredicate::apply
Run Code Online (Sandbox Code Playgroud)