2

我想知道是否有任何像 Lisp 一样好的 Java 多方法实现/库。

我发现了这个明显冻结的:JMMF

4

3 回答 3

3

您可以使用在 JVM 上运行并具有对多方法的内置支持的 Clojure。

于 2011-02-21T17:13:13.580 回答
2

I created this library which allows you to implement a Java interface using multimethods, by creating a proxy that satisfies the interface. I'm using it in a few projects and it's reasonably predictable, but read the documentation: Multimethods in Java can behave strangely.

于 2014-09-26T14:02:19.840 回答
1

有一些有效的替代方案可以处理多分派问题,也许这些替代方案几乎可以证明为什么它没有在该语言中实现。因此,您可以使用经典的访问者模式,也可以使用一定量的反射。

有一个过时的MultiJava 项目在 Java 中实现了多调度支持,还有几个其他项目使用反射来支持 Java 中的多方法:Java MultimethodsJava Multimethods Framework。也许还有更多。

您还可以考虑另一种支持多方法的基于 Java 的语言,例如ClojureGroovy(这些链接指向示例)。

于 2012-05-23T14:48:37.593 回答