我想知道是否有像Lisp那样的适合Java的多方法实现/库。
我发现这个显然是冻结的:JMMF
答案 0 :(得分:3)
您可以使用在JVM上运行的Clojure,并且内置支持多方法。
答案 1 :(得分:2)
我创建了this library,它允许您使用多方法实现Java接口,方法是创建满足接口的代理。我在一些项目中使用它并且它是合理可预测的,但是阅读文档:Java中的多方法可能表现得很奇怪。
答案 2 :(得分:1)
有一些有效的替代方案可以处理multiple dispatch problem,也许这些替代方案很可能证明为什么它没有在语言中实现。因此,您可以使用经典visitor pattern,也可以使用一定量的反射。
有一个过时的MultiJava Project在Java中实现了多个调度支持,还有一些其他项目使用反射来支持Java中的多方法:Java Multimethods,Java Multimethods Framework。也许还有更多。