我寫了一個程序,它必須要求要使用的方法(我使用java.lang.StringBuffer.append),那麼它必須說明它最多需要多少個參數,在這種情況下,我認爲這是3。用戶可以輸入儘可能多的參數,因爲他想要所有的字符串,然後程序會追加它們並將字符串打印出來。但有一些錯誤,我只是沒有發現錯誤。Java反射,獲取方法追加並使用它
import java.lang.reflect.*;
import tio.*;
public class MethodExecutor {
public static void main(String [] args) throws ClassNotFoundException, NoSuchMethodException, SecurityException
{
String input = "";
String input1 = "";
String input2 = "";
String argumenten[];
int aantal = 0;
System.out.println("What method to invoke?");
input = Console.in.readLine();
input1 = input.substring(0,input.lastIndexOf("."));
input2 = input.substring(input.lastIndexOf(".")+1,input.length());
System.out.println(input2);
Class<?> c = Class.forName(input1);
Method m = c.getMethod(input2, null);
Class<?>[] parameterTypes = m.getParameterTypes();
System.out.println("Needs max " + parameterTypes.length + " parameters.");
System.out.println("How many will you provide?");
aantal = Console.in.readInt();
argumenten = new String[aantal];
for(int i = 0; i < argumenten.length; i++)
argumenten[i] = Console.in.readLine();
System.out.println("Success");
}
}
Tio只是一個獲取控制檯輸入的庫。
有人可以幫忙嗎?
親切的問候,
什麼是錯,什麼是行爲,你期待什麼? – pgras
我無法顯示.append所需的最大需求參數。所以我也不能用用戶給出的參數來執行函數。我認爲.getmethod不會給我正確的功能 – user1007522