Я следую this series, чтобы узнать, как работает компилятор clojure.Как вызвать StaticMethodExpr.eval?
Я пытался вызвать eval
метод StaticMethodExpr
с использованием кодов ниже
(ns clojure.lang
(:use clojure.core)
(:import [clojure.lang Compiler Compiler$C]))
(def form (read-string "(+ 1 1)"))
(def expr (Compiler/analyze Compiler$C/EXPRESSION form))
(.eval expr)
, но не повезло и бросить IllegalArgumentException
:
Unhandled java.lang.IllegalArgumentException
Can't call public method of non-public class: public
java.lang.Object clojure.lang.Compiler$StaticMethodExpr.eval()
Есть что-нибудь мне не хватает или это a bug in jdk?