次のようにコードをコピーします。
/**
※メソッド名を基にリフレクションメソッドのパラメータの型を取得(オーバーロードされた同名のメソッドを無視して使用する場合の注意)
* @param obj クラス インスタンス
* @param methodName メソッド名
* @戻る
* @throws ClassNotFoundException
*/
public static Class[] getMethodParamTypes(Object classInstance,
文字列メソッド名) をスローします ClassNotFoundException{
クラス[] paramTypes = null;
Method[] メソッド = classInstance.getClass().getMethods();//すべてのメソッド
for (int i = 0; i<methods.length; i++) {
if(methodName.equals(methods[i].getName())){//受信メソッド名と一致します
Class[] params = Methods[i].getParameterTypes();
paramTypes = 新しいクラス[params.length];
for (int j = 0; j < params.length; j++) {
paramTypes[j] = Class.forName(params[j].getName());
}
壊す;
}
}
paramType を返します。
}
// メソッド test を取得します (Test クラスには何でも記述できますが、ここではリストしません)
メソッド m = Test.class.newInstance().getClass().getDeclaredMethod("メソッド名", getMethodParamTypes(Test.class.newInstance(),"メソッド名"));