javaから実行その3 コンパイルして、invokeから引数を渡す - Clojure 
2014/01/26 
clojureです。
javaから文字列を渡してコンパイルして、できあがったオブジェクトを実行してみます。
その際に、ivokeするときに引数を渡して実行します。
package jp.deiji.ext;
import java.io.StringReader;
import clojure.lang.Compiler;
import clojure.lang.Var;
public class ExtClojure03 {
    public static void main(String[] args) {
        a();
    }
    static void a() {
        new clojure.lang.RT();
        String str = " (defn hello [name] (println (str \"hello \" name)))";
        Object o = Compiler.load(new StringReader(str));
        System.out.println(o);
        System.out.println(o.getClass());
        Var v = (Var) o;
        v.invoke("ugo");
       
    }
}
実行結果
#'clojure.core/hello
class clojure.lang.Var
hello ugo
: