내가이 Class[]<?>
으로 유형을 읽을 필요가 Object[]
, 나는이 메소드에 갈거야했다가두 번째 배열로 배열을 읽기
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
값을 가질 수 없습니다가 발생합니다 a 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 루프와'ArrayList '를 시도했지만 null 값을 가지지 않는다. – Curlip
그게 ArrayLists로 시도했을 때 – Curlip