methodName (String) と parameters(Object[]) の引数をとるメソッド callMethod があります。さて、最初はすべて順調に思えたのですが、問題が発生しました。リフレクションを使用するには、オブジェクトのタイプを知っている必要があります。これまでのところ、次のように決定していました。
Class[] getParameterTypes(Object[] parameters) {
Class[] parameterTypes = new Class[parameters.length];
for (int i = 0; i < parameters.length; i++) {
parameterTypes[i] = parameters[i].getClass();
}
return parameterTypes;
}
callMethod は、外部ソースからメソッドを呼び出すために使用されます。そして、それらのメソッドがプリミティブパラメーターを型として持っている場合、またはインターフェイス (リストなど) がある場合に失敗するように見えますが、その理由はわかっています。
私の質問は次のとおりです:これを回避して/同様の方法を維持する方法はありますか、または唯一の解決策は、型情報(プリミティブのfe Integer.TYPEなど)を上記のメソッドに渡すことです:
callMethod(String methodName, Object[] parameters, Class[] parameterTypes);
助けてくれてありがとう。