我有一個模塊,用於我在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。因此,這大概是一個使用錯誤 - 但我應該做什麼不同呢?