2

Lisp のように Java 用の合理的に優れたマルチメソッドの実装/ライブラリがあるかどうか疑問に思っています。

私はこれだけ明らかに凍っているものを見つけました: JMMF

4

3 に答える 3

3

JVM で実行され、マルチメソッドのサポートが組み込まれている Clojure を使用できます。

于 2011-02-21T17:13:13.580 に答える
2

インターフェイスを満たすプロキシを作成することにより、マルチメソッドを使用してJavaインターフェイスを実装できるこのライブラリを作成しました。私はいくつかのプロジェクトでそれを使用しており、合理的に予測可能ですが、ドキュメントを読んでください:Javaのマルチメソッドは奇妙な動作をする可能性があります。

于 2014-09-26T14:02:19.840 に答える
1

複数のディスパッチの問題に対処するための有効な代替手段がいくつかあります。おそらく、これらの代替手段は、言語に実装されていない理由を正当化するものです。したがって、古典的な訪問者パターンを使用するか、ある程度の反射を使用することができます。

Java で複数のディスパッチ サポートを実装した古いMultiJava Projectがあり、Java でマルチメソッドをサポートするためにリフレクションを使用する他のプロジェクトがいくつかあります: Java MultimethodsJava Multimethods Framework。おそらく、さらに多くのことがあります。

ClojureGroovyなど、マルチメソッドをサポートする Java ベースの代替言語を検討することもできます(これらのリンクは例を示しています)。

于 2012-05-23T14:48:37.593 に答える