Импорт классов Java в Clojure

Я, кажется, делаю что-то не так. Я создал clojure от мерзавца, и вызываю его таким образом:

java -cp clojure.jar clojure.main

Я получаю repl, и затем я ввожу:

(import 'java.lang.string)

и я добираюсь:

java.lang.ClassNotFoundException: java.lang.string (NO_SOURCE_FILE:1)

Я пробую это lang.string, так как я предполагаю, что он должен существовать на пути к классу где-нибудь. Я попробовал другие библиотеки, все без большой удачи. Что я делаю неправильно?

7
задан Timothy Baldridge 24 June 2010 в 15:36
поделиться

3 ответа

String должен быть написан с заглавной буквы, вот и все.

user> (import 'java.lang.String)
java.lang.String

Но все в java.lang уже импортировано и доступно по умолчанию, так что вам не нужно этого делать.

14
ответ дан 6 December 2019 в 07:24
поделиться

Кстати, в упражнениях без реплики, вероятно, лучший способ включить классы Java - это макрос ns .

(ns foo.bar
  (:refer-clojure :exclude [ancestors printf])
  (:require (clojure.contrib sql sql.tests))
  (:use (my.lib this that))
  (:import (java.util Date Timer Random)
           (java.sql Connection Statement))) 
8
ответ дан 6 December 2019 в 07:24
поделиться

Блех, кажется, я нашел. Прежде всего, синтаксис должен быть таким:

(import java.lang.String)

Также обратите внимание, что это строка, а не строка.

2
ответ дан 6 December 2019 в 07:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: