如何向Clojure中的具体化类添加注释?

如何向Clojure中的具体化类添加注释?,clojure,annotations,Clojure,Annotations,我需要创建一个实现接口并具有注释的类,然后将该类的一个实例传递给Java中实现的一些API 使用Clojure,我可以具体化接口并获得如下实例: (reify MyInterface (method1 [this] ...)) 但是,reify似乎不接受注释。如何解决这个问题?首先reify返回一个对象而不是类。如果需要生成带有注释的类,则需要使用如下所示的方法(示例显示如何向该类添加不推荐的注释): 此外,您还可以使用: 首先,reify返回一个对象而不是类。如果需要生成带有注释的类,则需要

我需要创建一个实现接口并具有注释的类,然后将该类的一个实例传递给Java中实现的一些API

使用Clojure,我可以具体化接口并获得如下实例:

(reify MyInterface (method1 [this] ...))

但是,
reify
似乎不接受注释。如何解决这个问题?

首先
reify
返回一个对象而不是类。如果需要生成带有注释的类,则需要使用如下所示的方法(示例显示如何向该类添加不推荐的注释):

此外,您还可以使用:


首先,
reify
返回一个对象而不是类。如果需要生成带有注释的类,则需要使用如下所示的方法(示例显示如何向该类添加不推荐的注释):

此外,您还可以使用:


可能通过运行时字节码操作。可能通过运行时字节码操作。
reify
在调用对象时返回对象,但在编译对象时创建类。由于有一些框架在传递给它们的对象上使用反射,因此
具体化
在其方法(或类本身)上添加注释可能很有用。正如您所注意到的,这实际上是不可能的,但是说
reify
不创建类是错误的。
reify
在调用对象时返回一个对象,但在编译它时创建一个类。由于有一些框架在传递给它们的对象上使用反射,因此
具体化
在其方法(或类本身)上添加注释可能很有用。正如您所注意到的,这实际上是不可能的,但是说
reify
不创建类是错误的。
(gen-class :name ^{java.lang.Deprecated true} MyClass
   ...)
(deftype ^{java.lang.Deprecated true} MyClass 
  ...)