通过反射获取指定类的指定方法

[code="java"]
package test;

import java.lang.reflect.Method;

public class OtherTest {
public void doTest(OtherTest[] tests){

}
public static void main(String[] args) throws Exception{
    Class clazz = Class.forName("test.OtherTest");
    Method method = clazz.getDeclaredMethod("doTest", OtherTest[].class);

}

}
[/code]
请问有没办法通过clazz替换掉getDeclaredMethod的第二个入参,上面是写死成OtherTest[].class,但是实际情况下,需要写成通用方式,谢谢。
注:目前采用将入参OtherTest[]修改为一个中间类的方式规避,请不要告知这种解决办法。

只按方法名称查询:
[code="java"]package bluechip.lang;

import java.lang.reflect.Method;

public class TestReflect {
public void doTest(TestReflect[] tests) {

}
public static void main(String[] args) throws Exception {
    Class clazz = Class.forName("bluechip.lang.TestReflect");
    Method[] methods = clazz.getDeclaredMethods();
    for (Method method : methods) {
        if (method.getName() == "doTest") {
            System.out.println(method);
            break;
        }
    }
}

}[/code]

不知道你想要怎么个通用法? 比如介绍几种场景。

springframework.util.ClassUtils/ReflectionUtils 工具类提供了很多简便方法

而且你应该也知道
public void doTest(OtherTest[] tests){

}

不如
public void doTest(Class<?>... clazz){

更通用。

而且我们也知道Class<?>... clazz这是不可预测的,怎么能做成通用的? 不知道你所说的通用是指什么?

你如果想通过映射获取方法public void doTest(OtherTest[] tests) 肯定最后还是要给死参数类型的

不明白你要的通用指的是啥