1

R ベースのアプリケーションで Java コードのホストを利用するために rJava を使い始めたところです。簡単な「Hello world」タイプのものをいくつか試したので、基本的なセットアップが機能していることがわかります。いくつかの問題がありますが、 を使用してこの基本的な問題を解決できれば解決されることを願っています.jcall

> cal = new(J("java/util/GregorianCalendar"))
> obj = new(J("au.gov.ips.dataarchive.TIndex"))
> obj$monthlyT(cal)
[1] 77
> .jcall(obj,"I","monthlyT",cal)
    Error in .jcall(obj, "I", "monthlyT", cal) : 
     method monthlyT with signature (Ljava/util/GregorianCalendar;)I not found

私の理解では、3 行目と 4 行目は同等であり、同じ結果が得られるはずです。明らかに私は何か間違ったことをしています。「monthlyT」メソッドは、Java コードで次のように定義されています。

static public Integer monthlyT(Calendar month)

私は Java の専門家ではないので、質問に答えるために提供する必要のある Java オブジェクトに関するその他の情報を教えてください。

4

1 に答える 1

1

calは であり、ではjava.util.GregorianCalendarありませんjava.util.Calendar。低レベルのインターフェースを使用したい場合.jcall(なぜ?)、自分でキャストする必要があります。だから、このようなもの:

.jcall(obj,"I","monthlyT",.jcast(cal, "java/util/Calendar" ))
于 2012-11-08T09:36:58.523 に答える