以编程方式调用Java类中的所有方法

时间:2014-02-07 02:42:00

标签: java oop

我正在尝试使用变量方法查看大量的类,并使用一些生成的输入运行每个方法。结果并不重要,重要的是没有任何错误。

我有这个代码来查找所有方法并调用它们:

MyClassType theClass = new MyClassType();  // Fake class for example
Method[] methods = theClass.getClass().getMethods();

for (Method m : methods) {
    try {
        m.invoke(theClass, new Object[]{});
    } catch (Exception ex) {
        //Log error
    }
}

这对于不接受任何参数的所有方法都适用,但对于没有参数的方法则失败。

有什么方法可以编程方式检测每种方法所需的参数类型并给它一个测试值?例如,所有布尔值均为true,所有整数均为1,所有浮点数均为1.5f等。

1 个答案:

答案 0 :(得分:2)

看看Method API,......说实话,这真的应该是你实际到这里之前应该看的第一个地方。 Method类中的getParametertypes()方法会有所帮助。还有其他有用的方法,包括那些有助于泛型方法的方法。