3

可能重复:
在 clojure 中为 java 包名起别名

如果我有这样的 Java API:

com.very.long.and.boring.names.Abc
com.very.long.and.boring.names.Def
com.very.long.and.boring.names.Ghi

我可以使用 Clojure (1.4.0) 中的“假”命名空间,如下所示:

(foo/Abc)
(foo/Def)
(foo/Ghi)

我不想(使用 'com.very.long.and.boring.names)因为 Abc / Def / Ghi 可能与我的 Clojure 函数发生冲突。所以基本上我想将“com.very.long.and.boring.names”“映射”到“foo”。

我在 REPL 尝试了几件事,但无法成功。

4

2 回答 2

3

我不相信这个功能还存在。

但是,如果目的是在运行时使用 Class 对象,您总是可以这样做:

(def s java.lang.String)

(.newInstance s)
=> ""
于 2012-09-30T06:19:16.367 回答
2

我想你基本上是在问同样的问题:

在clojure中为java包名称起别名

显然该功能实际上还不存在......

但是,类名通常以大写字母开头,而函数名按照惯例是小写的。除非 Java 类或您的函数不遵循这些约定,否则您不应该有任何冲突。

于 2012-09-30T01:57:35.837 回答