Импорт Java-классов в Clojure - PullRequest
7 голосов
/ 24 июня 2010

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

java -cp clojure.jar clojure.main

Я получаю ответ, а затем набираю:

(import 'java.lang.string)

и получаю:

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

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

Ответы [ 3 ]

14 голосов
/ 24 июня 2010

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

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

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

8 голосов
/ 24 июня 2010

Кстати, в упражнениях, не связанных с repl, вероятно, лучший способ включить классы 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))) 
2 голосов
/ 24 июня 2010

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

(import java.lang.String)

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...