2009-11-08 11 views
8

Biorąc pod uwagę pakiet x.y.z java, mogę podać alias x.y.z na krótszą nazwę, dzięki czemu mogę odwoływać się do klas java w pakiecie jako my-alias.MyJavaClass.Aliasing nazwy pakietu java w clojure

Jeśli nie jest to możliwe, mogę tylko import wszystkie klasy w mojej przestrzeni nazw, ale nie chcę określać nazwy każdej klasy ręcznie, a dokumentacja interfejsu API clojure nie wydaje się jasne, czy jest to możliwe do import wszystkie klasy w pakiecie automatycznie.

Odpowiedz

10

Nie ma żadnej funkcji (jeszcze). Pakiety Java są w innej przestrzeni nazw niż Clojure, więc zwykłe sztuczki aliasów nie będą działać.

Co można zrobić, to import, każda klasa, która pozwala uniknąć pełnego pakietu + nazwa Klasa:

(import [java.io File Writer Reader]) 
(new File "/") 
; #<File /> 

Rich świadczy swoje powody, dla których nie wspiera (import [java.io.*])here.