Javaソースファイルを解析してJavaコード構造を理解できるようにする、java/clojureで利用できるツールは何ですか?
これの動機はコード生成のためです.Javaソースコードを含む文字列があったとします.
(def java-str
"/**
* @param r the modulus of the complex number to create
* @param theta the argument of the complex number to create
* @return <code>r·e<sup>i·theta</sup></code>
* @throws MathIllegalArgumentException if r is negative
* @since 1.1
*/
public static Complex polar2Complex(double r, double theta) {
if (r < 0) {
throw new MathIllegalArgumentException(
LocalizedFormats.NEGATIVE_COMPLEX_MODULE, r);
}
return new Complex(r * FastMath.cos(theta), r * FastMath.sin(theta));
}
")
次にgen-clj-fn
、Java メソッド、パラメーター名、型、および順序を認識する関数定義の clojure 文字列を生成するように記述できます。
(gen-clj-fn java-str)
;;=> "(defn polar-to-complex [#^Double r #^Double theta]
;; (Complex/polar2Complex r theta))"
r
理想的には、取得して取得するのは良いことtheta
ですclojure.reflect
が、それが可能かどうかはわかりません....型シグネチャのみを提供し、名前自体は提供しないと思います。