私はCjouresの主張を「シームレスに」Javaで動作できるとテストしようとしていました。一般に、Javaコードをどのように翻訳しますか:Javaオブジェクトとメソッド呼び出しをClojureコードに変換する
object1.object2(some_args).object3.object4(some_other_args).object5.objectnth.method(arg1, arg2, argn);
to Clojure?チェーン内のオブジェクトの一部は、静的クラス、静的メソッド、またはクラス変数であり、一部はインターフェイスです。それは単純ではないようです。例えば、グラフィックライブラリ内のオブジェクト。私はある時点でオブジェクト(Graphics。)を作成しようとしましたが、Clojureはクラスグラフィックスを知らなかったと思います。
ありがとうございました!
public class Test {
public Test a;
public Test getA() {
return this.a;
}
public Test add(Test a) {
this.a = a;
return this;
}
public int foo(int a, int b, int c) {
return a+b+c;
}
public long foovar(Long... ai) {
long r = 0;
for (long i:ai) r+= i;
return r;
}
}
と内部オブジェクトにアクセスする方法の束を示しています:
具体的な例がありますか?上記のサンプルは少し曖昧です。あなたは一例として、http://clojuredocs.org/clojure.core/dotoを見ることから始めることができます。また、http://clojure-doc.org/articles/language/interop.html –
を参照してください "チェーン内のオブジェクトのいくつかは静的クラスかもしれません" [番号](http://stackoverflow.com/q/1215881/ 5044950) –
@AlanThompson実際、この場合、['..'](https://clojuredocs.org/clojure.core/_ ..)が適しています。 –