如果我有这样的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尝试了几件事,但无法使其发挥作用。
答案 0 :(得分:3)
我认为此功能尚不存在。
但是,如果目的是在运行时使用Class对象,则可以随时执行:
(def s java.lang.String)
(.newInstance s)
=> ""
答案 1 :(得分:2)
我认为你基本上都在问这个问题:
Aliasing a java package name in clojure
显然功能还没有实际存在......
但是,类名通常以大写字母开头,而函数名称按惯例以小写字母开头。除非Java类或您的函数没有遵循这些约定,否则您不应该有任何冲突。