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