Java的任何好的多方法实现?

时间:2011-02-21 17:09:43

标签: java multimethod

我想知道是否有像Lisp那样的适合Java的多方法实现/库。

我发现这个显然是冻结的:JMMF

3 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:2)

我创建了this library,它允许您使用多方法实现Java接口,方法是创建满足接口的代理。我在一些项目中使用它并且它是合理可预测的,但是阅读文档:Java中的多方法可能表现得很奇怪。

答案 2 :(得分:1)

有一些有效的替代方案可以处理multiple dispatch problem,也许这些替代方案很可能证明为什么它没有在语言中实现。因此,您可以使用经典visitor pattern,也可以使用一定量的反射。

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

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