为什么这些Java类名必须在Clojure中完全限定?

时间:2011-10-10 10:56:55

标签: java import clojure

我定义了一个与JAX-RS REST服务器(RESTEasy)一起使用的definterface

(ns com.example.server.resources.buildtime
  (:import [javax.ws.rs.core Cookie UriInfo]))

(definterface BuildTime
  (getBuildTime [^UriInfo info
                 ^Cookie security-cookie]))

当我AOT编译这个类时,我收到以下错误:

Exception in thread "main" java.lang.NoClassDefFoundError: java/lang/UriInfo, compiling:(com/example/server/resources/buildtime.clj:13)

如果我将注释更改为以下内容,则错误消失:

(definterface BuildTime
  (getBuildTime [^javax.ws.rs.core.UriInfo info
                 ^javax.ws.rs.core.Cookie security-cookie]))

为什么在使用import:导入类时,注释是否必须具有完全限定的类名?

1 个答案:

答案 0 :(得分:2)

gen-classgen-interface都要求课程完全合格,如文档http://clojuredocs.org/clojure_core/clojure.core/gen-interfacehttp://clojuredocs.org/clojure_core/clojure.core/gen-interface中所述。我不知道为什么会这样。