2009-11-08 5 views
8

Gegeben ein Java-Paket x.y.z, kann ich Alias ​​x.y.z zu einem kürzeren Namen, so dass ich dann auf Java-Klassen innerhalb des Pakets als my-alias.MyJavaClass beziehen kann.Aliasing eines Java-Paketnamens in clojure

Wenn das nicht möglich ist, könnte ich nur import alle Klassen in meinem Namespace, aber ich möchte nicht die Namen jeder Klasse manuell angeben, und die Clojure API-Dokumentation scheint nicht klar, ob es möglich ist zu import alle Klassen in einem Paket automatisch.

Antwort

10

Es gibt (noch) keine Funktionalität. Java-Pakete befinden sich in einem anderen Namensraum als Clojures, so dass die üblichen Alias-Tricks nicht funktionieren.

Was können Sie tun, ist jede Klasse importieren, die Sie das volle Paket + Klassennamen können vermeiden:

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

Reiche bietet seine Gründe für die nicht (import [java.io.*])here unterstützen.