2011-01-29 13 views
15

Provare a importare una classe all'esterno della libreria java senza risultato. Corro in senso antiorario su Eclipse Helios. Il commons-land-2.6.jar si trova nel percorso di costruzione. Sono nuovo di Clojure e non riesco a capirlo. Tutto l'aiuto molto apprezzato!Importazione di classi Java su Clojure

Naturalmente questo funziona bene:

1:7 exp2=> (import '(java.io FileReader)) 

> java.io.FileReader

ma questo non lo fa:

1:6 exp2=> (import '(org.apache.commons.lang.StringUtils)) 

> nil

Questo è l'obiettivo finale:

1:10 exp2 => (defn spazio bianco? [Carattere])

> java.lang.Exception (StringUtils (personaggio isEmpty).): Impossibile risolvere simbolo: StringUtils in questo contesto (repl-1: 10)

risposta

23

È fatto uno errore: non è stato inserito spazio tra la classe org.apache.commons.lang e StringUtils. Questa forma di importazione consente di importare più classi da un unico pacchetto, per esempio:

(import '(org.apache.commons.lang StringUtils SystemUtils)) 

se si desidera importare una sola classe, quindi è possibile utilizzare la versione senza parentesi:

(import 'org.apache.commons.lang.StringUtils) 

sia perché funzioni in StringUtils sono statici, è necessario utilizzare il codice seguente:

(StringUtils/isEmpty character) 

per invocare le loro funzioni

Problemi correlati