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

Serialization Clojure:如何在编译时创建Java对象,而不是在加载时或运行时,serialization,clojure,clojure-java-interop,gen-class,Serialization,Clojure,Clojure Java Interop,Gen Class,我正在使用Clojure的java库。java库只要求在编译时创建对象。当通过使用leiningen创建的uberjar部署应用程序时,如果没有错误,则无法正确创建此配置对象 我只能通过宏在编译时创建对象。问题是它不可序列化。当应用程序通过uberjar运行时,我如何使这个对象对jvm可用?将对象放入atom不起作用,因为运行jar的新jvm实例在加载时/运行时重置了atom。编译时jvm需要一种方法将此对象放入一个aot编译类中。gen类似乎无法工作,因为它只能在运行时通过初始值设定项初始化状

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


我只能通过宏在编译时创建对象。问题是它不可序列化。当应用程序通过uberjar运行时,我如何使这个对象对jvm可用?将对象放入atom不起作用,因为运行jar的新jvm实例在加载时/运行时重置了atom。编译时jvm需要一种方法将此对象放入一个aot编译类中。gen类似乎无法工作,因为它只能在运行时通过初始值设定项初始化状态。

是什么阻止您在java中创建一个特定对象?另外,看一看代理,这听起来像是你需要的,虽然没有进一步的解释很难说。粘贴一些java代码怎么样?这里没有任何迹象表明他有任何java代码。我认为对象本身是特定于vm的,因此您确实需要在每个想要使用它的vm中创建对象。所以真正的问题是为什么不能在运行时生成对象。