2011-01-29 15 views
15

Intentando importar una clase fuera de la biblioteca java sin resultado. Estoy corriendo en sentido antihorario en Eclipse Helios. Commons-land-2.6.jar está en el buildpath. Soy nuevo en Clojure y no puedo resolver esto. ¡Toda ayuda muy apreciada!Importación de clases Java a Clojure

Naturalmente, esto funciona bien:

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

> java.io.FileReader

pero esto no lo hace:

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

> nil

Este es el objetivo final:

1:10 exp2 => (defn whitespace? [Personaje])

> java.lang.Exception (StringUtils (estaVacia caracteres).): No se puede resolver símbolo: StringUtils en este contexto (repl-1: 10)

Respuesta

23

Usted hizo una error: no ha puesto espacio entre org.apache.commons.lang y la clase StringUtils. Esta forma de importación le permite importar varias clases de un paquete, por ejemplo:

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

si desea importar una sola clase, a continuación, puede utilizar la versión sin paréntesis:

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

y debido funciones en StringUtils son estáticos, es necesario utilizar siguiente código:

(StringUtils/isEmpty character) 

para invocar sus funciones