Clojure访问Java接口常数



我正在尝试在Clojure中访问此文件的常数:

public interface CacheConstants
{
    /** This is the name of the config file that we will look for by default. */
    String DEFAULT_CONFIG = "/cache.ccf";
    /** Delimiter of a cache name component. This is used for hierarchical deletion */
    String NAME_COMPONENT_DELIMITER = ":";
 }

clojure尝试:

(import '[org.apache.jcs.engine.CacheConstants])
org.apache.jcs.engine.CacheConstants/DEFAULT_CONFIG
;; clojure.lang.Compiler$CompilerException: java.lang.ClassNotFoundException: org.apache.jcs.engine.CacheConstants

如何访问这两个值?

以下可与本地Java接口一起使用:

文件:src-java/jroot/const.java

package jroot;
public interface Const {
  long ANSWER = 42;

文件:project.clj

(defproject clj "0.1.0-SNAPSHOT"
  <snip>
  :java-source-paths ["src-java"]
)

clojure代码:

(ns tst.clj.core
  (:require  ...)
  (:import [jroot Const])
)
(println Const/ANSWER)
---------
Const/ANSWER => 42

请注意:import向量中的空间(非常重要(。

另外,如果JAR文件是本地使用此语法:

(defproject test-project "0.1.0-SNAPSHOT"
:description "Blah blah blah"
...
:resource-paths ["resources/Siebel.jar" "resources/SiebelJI_enu.jar"])

最新更新