在clojure中别名一个java包名 [英] Aliasing a java package name in clojure
问题描述
给定一个java包xyz,我可以把xyz命名为一个较短的名称,这样我可以将包中的java类称为my-alias.MyJavaClass。
Given a java package x.y.z, can I alias x.y.z to a shorter name, so that i can then refer to java classes inside the package as my-alias.MyJavaClass.
如果这是不可能的,我可以只是 import
所有类到我的命名空间,但我不想手动指定每个类的名称,和clojure API文件似乎不清楚是否可以自动
If that isn't possible, I could just import
all classes into my namespace, but I don't want to specify the names of each class manually, and the clojure API docs doesn't seem clear on whether it's possible to import
all classes in a package automatically.
推荐答案
这里没有任何功能。 Java包在不同于Clojure的命名空间中,所以通常的别名技巧不起作用。
There isn't any functionality for this (yet). Java packages are in a different namespace than Clojure's, so the usual alias tricks won't work.
你可以做的就是导入每个类, package +类名:
What you can do is import each class, which lets you avoid the full package+class name:
(import [java.io File Writer Reader])
(new File "/")
; #<File />
Rich提供了他不支持(import [java.io. * ])
这里。
Rich provides his reasons for not supporting (import [java.io.*])
here.
这篇关于在clojure中别名一个java包名的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!