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)

Abc / Def / Ghi が Clojure 関数と衝突する可能性があるため、 ('com.very.long.and.boring.namesを使用) したくありません。したがって、基本的には「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 に答える