-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)//Invokeメソッドは、実行時にメソッドを識別していません。

呼び出されるメソッドは次のとおりです。String getList(int i, Boolean f)

次のコードを使用した場合にのみ識別されます。

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

1 に答える 1

0

私が正しく理解できれば、配列valueを含める必要がintありBooleanますが、最初に を設定し、その後 にObject置き換えます。そのため、Java はメソッドをString呼び出すことができません。これを修正するには、次のようにする必要があります。String getList(int,Boolean)StringintBoolean

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 に答える