-3
String str="123/false"
String[] ss = str.split("/"); 
Object[] value = new Object[ss.length];
int ii=0;
for(Object s:ss){
  value[ii] = new Object();
  value[ii]=s;
  ii++;
}

method.invoke(new Instance(), value)//调用方法不是在运行时识别方法。

要调用的方法是:String getList(int i, Boolean f)

只有当我使用以下代码时它才会被识别:

method.invoke(new Instance(), new Integer(123), new Boolean(false))
4

1 回答 1

0

如果我做对了,您需要value包含数组intBoolean但是您首先设置了一个Object,然后将其替换为 a String。由于 Java 不能调用该方法String getList(int,Boolean),因为String不能转换为int也不能转换为Boolean。要解决此问题,您必须执行以下操作:

String str="123/false"
String[] ss = str.split("/"); 
Object[] value = new Object[ss.length];

// Conversion String to int, first parameter
value[0] = Integer.parseInt(ss[0]);  
// Conversion String to boolean, second parameter
value[1] = Boolean.parseBoolean(ss[1]); 

method.invoke(new Instance(), value);
于 2012-09-10T06:44:21.650 回答