Clojure:如何在编译时创建Java对象,但不是加载时间或运行时

时间:2014-04-08 19:22:10

标签: serialization clojure clojure-java-interop gen-class

我正在使用带有Clojure的java库。 java库只需要在编译时创建一个对象。当通过uberjar(使用leiningen创建)部署应用程序时,如果没有错误,则无法正确创建此配置对象。

我可以通过宏在编译时创建对象。问题是它不是Serializable。当应用程序通过uberjar运行时,如何将此对象提供给jvm?将对象放入原子并不起作用,因为原子在加载时/运行时被重置为运行jar的新jvm实例。编译时jvm需要一种方法将此对象放入其中一个已编译的类中。 (gen-class)似乎没有用,因为它只能在运行时通过初始化器初始化状态。

0 个答案:

没有答案