clojure - 如何在Clojure中给具体化的类添加注解?

标签 clojure annotations

我需要创建一个实现接口(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/

相关文章:

clojure - 尝试将注释添加到 defrecord 宏中定义的类

clojure - 使用 Clojure deftype 作为参数化函数

clojure - Gradle for Clojure (Clojuresque) 出现“找不到 us.bpsm :edn-java:0. 4.3”错误

java - 在 Clojure 中使用 genclass 扩展 Java 类时如何调用父类(super class)?

clojure - 使用 clojure.data.xml 从 Clojure 发出 XML。

scala - 为什么基于注释的库在 Scala 中不那么流行?

java - 在没有映射表的情况下存储 JSP HashMap?

java - 定义常见的swagger注解

react-native - 使用 ClojureScript、Re-natal 和 React-Native 禁用 RTL?

java - JUnit @Test 预期的注释不起作用