0
我有一个Object[]
,我需要阅读的类型为Class[]<?>
,我则去这个方法读阵列成第二阵列
public static void invokeMethod(String className, String methodName,
Class<?>[] paramTypes, Object[] params) {
try {
Class<?> commandclass = Class.forName(className);
Method method = commandclass.getMethod(methodName, paramTypes);
method.invoke(method, params);
} catch (NoSuchMethodException | SecurityException
| ClassNotFoundException | IllegalAccessException
| IllegalArgumentException | InvocationTargetException e) {
e.printStackTrace();
}
}
两个数组不能有任何null
值,否则会抛出一个NullPointerException
。
编辑: 代码
ArrayList<Object> params = new ArrayList<Object>();
int i = 1;
while(true){
String str = input.substring(input.indexOf(" ", i), input.indexOf(" ", i + 1));
if(str.equalsIgnoreCase(" ")){
break;
}
params.add(i, str);
i++;
}
ArrayList<Class<?>> classes = new ArrayList<Class<?>>();
for(int j = 0; j > params.toArray().length; i++){
params.toArray()[j].getClass();
}
代码后来:
invokeMethod("com.cjcl.commands.NewCommand", "command", (Class<?>[]) classes.toArray(), params.toArray());
您是否有任何示例代码您已经尝试完成此操作以获取疑难解答? –
我已经尝试过for循环和'ArrayLists',但我不能让数组没有空值。 – Curlip
那是什么时候我尝试ArrayLists – Curlip