Clojure静态内部类实例化问题(互操作问题)

时间:2015-02-03 17:00:01

标签: clojure

我正在尝试将Java库中的静态内部类用于Clojure。

内部类是InMemoryLookupCache.Builder

我总是得到ClassNotFoundException。喜欢:

(import 'org.deeplearning4j.models.word2vec.wordstore.inmemory.InMemoryLookupCache$Builder)

我正在尝试在Clojure中编写Java代码而没有任何成功:

new InMemoryLookupCache.Builder().lr(2e-5).vectorLength(100).build();

但是,即使我认为我使用$语法来访问它,我也无法实例化该内部类。

如果您想尝试,请使用以下项目:

[org.deeplearning4j/deeplearning4j-core "0.0.3.3"]
[org.deeplearning4j/deeplearning4j-nlp "0.0.3.3"]

1 个答案:

答案 0 :(得分:2)

如果this是您正在使用的课程,我看不到Builder内部课程?

编辑: 这对我有用。将库的版本更改为示例正在使用的版本。

在project.clj中

(defproject clojure-scratch "0.1.0-SNAPSHOT"
  :description "FIXME: write description"
  :url "http://example.com/FIXME"
  :license {:name "Eclipse Public License"
            :url "http://www.eclipse.org/legal/epl-v10.html"}
  :dependencies [[org.clojure/clojure "1.6.0"]
                 [org.deeplearning4j/deeplearning4j-core "0.0.3.2.7"]
                 [org.deeplearning4j/deeplearning4j-nlp "0.0.3.2.7"]])

在core.clj中:

(ns clojure-scratch.core
  (:import (org.deeplearning4j.models.word2vec.wordstore.inmemory
             InMemoryLookupCache
             InMemoryLookupCache$Builder)))

(println (new InMemoryLookupCache$Builder))