0
我剛剛開始與rJava一起使用基於R的應用程序中的大量Java代碼。我已經嘗試了一些簡單的「Hello world」類型的東西,所以我知道基本設置正在工作。我有幾個問題,但我希望如果我可以使用.jcall
解決這個基本問題,他們將得到解決。在.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對象提供來回答這個問題。
「我」是一個int返回類型。你正在返回java.lang.Integer。 .jcall對這些事情很自私。 – 2012-08-07 02:24:27
謝謝。你能詳細談談?我現在試過.jcall(obj,「Ljava/lang/Integer;」,「monthlyT」,cal),但沒有成功。這裏需要的確切語法是什麼? – Bogdanovist 2012-08-07 02:37:08