Я хочу использовать R для ввода параметра в Java, например «1000». Затем метод StringToNum обрабатывает и выводит его возврат в R, а именно 1000. Кажется, это работа .jcall(), но я не знаю, как это сделать с его параметрами. Поскольку я не знаю Java, не могли бы вы мне помочь? Большое спасибо!package rjava jcall error in R
Java код
package com.mingdong.rcalljava.test;
import java.io.PrintStream;
public class StringToNum
{
private String inputString = null;
public StringToNum(String inputString)
{
this.inputString = inputString;
}
public StringToNum()
{
}
public int convertStringToInt()
{
if (this.inputString == null) {
this.inputString = "100";
}
return Integer.valueOf(this.inputString).intValue();
}
public static void main(String[] args)
{
StringToNum stringToNum = new StringToNum();
int num = stringToNum.convertStringToInt();
System.out.println("num:" + num);
}
}
R код
library(rJava)
.jinit()
.jinit('D:/Eclipse/dailyjob/javaProject/TestRCallJava.jar')
## .jaddClassPath("D:\\Eclipse\\dailyjob\\javaProject\\TestRCallJava.jar")
inputString <- .jnew("java.lang.String","1000")
inputString %instanceof% "java.lang.String"
StringToNum <- .jnew("com.mingdong.rcalljava.test.StringToNum")
StringToNum %instanceof% "com.mingdong.rcalljava.test.StringToNum"
.jcall(StringToNum,returnSig= "V", "main",inputString)
Error in .jcall(StringToNum, returnSig = "V", "main") :
method main with signature()V not found
пожалуйста, посмотрите на http://stackoverflow.com/questions/18656732/rjava-jcall-return-type-issue/18656827#18656827 я думаю, что проблема заключается в том, что 'main' является статическим методом, который не следует вызывать в ссылке на объект, а сам класс. См. Также документацию rJava для 'J'. – Beasterfield
Спасибо, Бистерфилд! Цените свою помощь! – Bylon
Все еще запутался. Так что мне делать? изменить функцию или просто изменить параметры? – Bylon