我需要创建一个实现接口(interface)并具有注释的类,然后将此类的实例传递给用 Java 实现的一些 API。
使用 Clojure,我可以具体化接口(interface)并获得如下所示的实例:
(reify MyInterface (method1 [this] ...))
但是,reify
似乎不接受注释。我该如何解决这个问题?
最佳答案
首先,reify
返回一个对象而不是类。如果需要生成带有注释的类,则需要使用 gen-class
如下所示(示例显示向类添加 Deprecated 注释):
(gen-class :name ^{java.lang.Deprecated true} MyClass
...)
此外,您还可以使用 deftype
:
(deftype ^{java.lang.Deprecated true} MyClass
...)
关于clojure - 如何在Clojure中给具体化的类添加注解?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15934893/