java - Functional Java 和 Guava 之间有很好的比较吗?

标签 java functional-programming guava functional-java

我想在我将要教授的类(class)中使用 Functional Java 或 Guava(或不太可能使用 Scala)。尽管有很多函数式语言在 JVM 上运行,但我还是希望坚持使用看起来尽可能像 Java 的语言,即在概念上和句法上与 Java 8 中预期的函数式特性最兼容的语言.

看起来像Functional JavaGuava是最佳人选。我还没有找到任何在功能、易用性、概念上与直接 Java 的接近程度等方面对它们进行比较的东西。有谁知道这些库之间的良好比较?

最佳答案

Guava 的目标不是在 Java 中提供函数式习语。来自Functional Explained Guava 维基页面:

Excessive use of Guava's functional programming idioms can lead to verbose, confusing, unreadable, and inefficient code. These are by far the most easily (and most commonly) abused parts of Guava, and when you go to preposterous lengths to make your code "a one-liner," the Guava team weeps.

Please be sure, when using Guava's functional utilities, that the traditional imperative way of doing things isn't more readable. Try writing it out. Was that so bad? Was that more readable than the preposterously awkward functional approach you were about to try?

过度依赖函数式习语对于 Java 7 来说意义不大,因为开销太高(参见 vertical problem)。这将随着 Java 8 而改变,这将改变 Java 库和程序在细节层面的设计方式。在 Java 7 中有意义的事情在 Java 8 中将在某种程度上被阻止。这将激发新版本的 Effective Java 和许多新的 API。

如果您尝试教授函数式编程,最好坚持使用(或多或少)纯函数式语言。每一种混合(或模拟)FP 和 OOP 的语言都会让人分心。

关于java - Functional Java 和 Guava 之间有很好的比较吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8609246/

相关文章:

java - 为什么 Google Precondition Library 中的 Checkers 接受对象而不是字符串

java - Guava CacheBuilder 最大尺寸

java - AlertDialog 上的 android-setAdapter 不工作

java - SVN颠覆性的。 eclipse 。本地存储库

scala - Scala 中 Ad-hoc 多态性和参数多态性的区别

string - 从 Haskell 中的字符串替换子字符串

rest - Guava LoadingCache 与 Kotlin 协程

具有不同名称的 JavaFX 2 类具有相同的 css 代码

java - 多个实例上多个同名客户端的 CAS

clojure 映射,%2 和 %1 是什么