49行目から始まるファイル「constraint.clj」に次のものがあります(行番号で表示):
49 (defn stacker []
50 (let [s (first (.getStackTrace (new java.lang.Throwable)))]
51 {:name (.getMethodName s)
52 :file (.getFileName s)
53 :line (.getLineNumber s)}))
54
55 (def s (stacker))
nrepl から、ファイルをコンパイルします。s の値を調べると、それが表示されます。
app.constraint> s
{:name "invoke", :file "constraint.clj", :line 50}
したがって、基本的には、getMethodName が私が期待したものではないことを除いて、かなりうまく機能しているようです。私はなりたい:name
ですapp.constraint/stacker
。それ、どうやったら出来るの?