2

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

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

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

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

4

1 回答 1

4

首先reify返回一个对象而不是一个类。如果需要生成带注解的类,则需要gen-class如下所示使用(示例显示为类添加 Deprecated 注解):

(gen-class :name ^{java.lang.Deprecated true} MyClass
   ...)

此外,您可以使用deftype

(deftype ^{java.lang.Deprecated true} MyClass 
  ...)
于 2013-04-11T04:25:06.137 回答