Доступ к бесконечности.class в Clojure
Я пытаюсь скопировать фрагмент кода из документации Infinispan в Clojure:
ConfigurationBuilder b = new ConfigurationBuilder();
b.persistence()
.addStore(SoftIndexFileStoreConfigurationBuilder.class)
.indexLocation("/tmp/sifs/testCache/index");
.dataLocation("/tmp/sifs/testCache/data")
Вот моя попытка:
(import '[org.infinispan.persistence.sifs.configuration.SoftIndexFileStoreConfigurationBuilder])
(import '[org.infinispan.configuration.cache ConfigurationBuilder])
(def b (ConfigurationBuilder.))
(.addStore (.persistence b)
(class org.infinispan.persistence.sifs.configuration.SoftIndexFileStoreConfigurationBuilder))
;; java.lang.ClassNotFoundException: org.infinispan.persistence.sifs.configuration.SoftIndexFileStoreConfigurationBuilder
Как мне пройти это исключение? Это источник SIFS
1 ответ
Решение
Для вашего случая вы должны иметь в своих зависимостях:
:dependencies ... others here ...
[org.infinispan/infinispan-core "9.0.1.Final"]
[org.infinispan/infinispan-persistence-soft-index "9.0.1.Final"]
Кроме того, вы используете импорт неправильно. Вы можете сделать:
(import full.package.name.ClassNameHere)
или же
(import [full.package.name ClassNameOne ClassNameTwo])
Для вашего случая вы должны делать:
(import org.infinispan.persistence.sifs.configuration.SoftIndexFileStoreConfigurationBuilder)
Обратите внимание, что в отличие от require
, где nil
результат означает "все хорошо" с import
nil
возврат означает "ничего не было импортировано".