据我所知,Guava中的Predicates是为填补Java中的差距而创建的,之后在Java 8中引入了Predicates。现在,当Java中有这样的功能时,使用Guava Predicates仍然有意义吗?这有增值吗?
答案 0 :(得分:10)
如果你有机会使用Java 8,那么"去吧#34;。
历史上,Guava确实定义了Predicate
或Function
以及其他此类"功能接口" (因为它们现在被称为)早在Java 8甚至正式化之前;实际上,它们是相同的。
然而不一样的是Java 8带来了充分利用JSR 292的强大功能的语法,这就是为什么Objects::nonNull
是有效的(java.util.function。){{1} }。
所以,虽然番石榴"早于" Java 8在很多方面都与这些接口有关,如果你使用Java 8,那么,使用Java 8.使用Java的功能,而不是番石榴等。如果你已经有了Guava&#39 ;这些接口的实例,您可以轻松地在Java 8中重用它们;例如,给定一个Guava Predicate,将其转换为Java 8谓词就像:
Predicate<Object>