我有一个模块,用于我在Clojure中编写的BaseXJava interface。该界面提供了许多注释,可用于确定如何调用和优化方法。不过,我遇到了麻烦,这些实际上附加到生成的类:Clojure:将注释附加到AOT编译的方法
(ns net.dyfis.svnkit_wrapper.SvnWrapper
(:import (org.basex.query QueryModule
QueryModule$Requires
QueryModule$Permission
QueryModule$Deterministic))
(:gen-class
:main false
:extends org.basex.query.QueryModule
:methods [
^{:static true}
[^{QueryModule$Requires QueryModule$Permission/NONE,
Deprecated {}}
cat [java.lang.String] java.lang.String]
^{:static true}
[^{QueryModule$Deterministic {},
QueryModule$Requires QueryModule$Permission/NONE}
catRev [java.lang.String int] java.lang.String]]))
然而,只有过时的注释被连接 - 在QueryModule$Requires
和QueryModule$Deterministic
注解丢弃:
>>> cat
public static java.lang.String net.dyfis.svnkit_wrapper.SvnWrapper.cat(java.lang.String)
>>> cat.getAnnotations()
array(java.lang.annotation.Annotation,[@java.lang.Deprecated()])
这发生在Clojure 1.4.0-beta6上,而支持AOT编译方法中的注释应该是来自Clojure 1.2。因此,这大概是一个使用错误 - 但我应该做什么不同呢?