2

clojure で ( gen-classを使用して) クラスを生成すると、 javapを介して検査すると、次の定義が得られます。

public class foo.bar extends java.lang.Object implements java.io.Serializable{
    public final java.lang.Object state;
    public static {};
    public foo.bar();
    ...
}

私はこれまでにこのようなものを見たことがなかったので、コンストラクトpublic static {}が何を意味するのだろうか…</p>

誰かが私を啓発してもらえますか?

4

3 に答える 3

2

javap (with javap -c ...) の完全な出力を見ると、それは、ファースト クラス アクセスの前に実行するように clojure コンパイラが配置した一連のコードであることがわかります。通常、後で使用される変数のインターンなどです。

于 2013-04-17T16:25:10.203 に答える