我对在 Java 中使用仿函数(函数对象)很感兴趣。通过快速谷歌搜索,我找到了这 3 个包:
- Java 泛型算法:http://jga.sourceforge.net/
- 公共(public)仿函数:http://commons.apache.org/sandbox/functor/
- 芒果:http://www.jezuk.co.uk/cgi-bin/view/mango
在 3 中,JGA 似乎拥有最好的设计。但我怀疑这里实际使用过一个或多个包的其他人可能能够就这些(可能还有其他)仿函数包的优缺点提供更多见解。
最佳答案
芒果
为 0、1 和 2 参数函数提供接口(interface)。使用 Java 泛型。用于处理函数的大量算法。
JGA
为 0、1、2 和任意数量的参数函数提供类。域对象将这些子类化。使用 Java 泛型。广泛的算法。包括 JFXG(Java Functor eXpression Grammar)——一种解析语言,旨在使创建任意复杂的仿函数变得容易。提供多种算法来处理函数。
Apache Commons 仿函数
为 0、1 和 2 参数函数以及 0、1 和 2 参数过程(不返回任何值)提供接口(interface)。使用 Java 泛型。算法范围广。
Google Guava(是 Google Collection )
为单参数函数提供 Function 和 Predicate 接口(interface)。使用 Java 泛型。仅提供组合函数的 compose 方法。非常基本。
功能性
为0、1、2和任意数量的参数函数提供接口(interface)和类。使用 Java 泛型。可以通过提供的函数反射类将现有方法转换为函数。
关于java - Best Java Functor lib : JGA, commons functor, mango, or...?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/651541/