使用反射



我遇到了这个问题

java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)

通过反射调用方法

 method.invoke(null, input.get(i), result.get(i));

您调用的方法抛出了一个Exception:

从javadoc

InvocationTargetException - 如果底层方法抛出 .

InvocationTargetException是(from javadoc)

…包含被调用的方法或构造函数抛出的异常的检查异常。

可以在InvocationTargetException上调用getCause方法来检索原始异常

下面是一个例子

try {
    method.invoke(null, input.get(i), result.get(i));
} catch (InvocationTargetException e) {
    Throwable originalException = e.getCause();
    // Print the message of the original exception
    System.out.println(originalException.getMessage()); 
    // ... or do what you like
}

相关内容

  • 没有找到相关文章

最新更新