在clojure中别名一个java包名 [英] Aliasing a java package name in clojure

查看:196
本文介绍了在clojure中别名一个java包名的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

给定一个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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆