compare(T o1, T o2)
如果我如何在方法中使用调用
问问题
314 次
1 回答
2
正如 Aubin 指出的那样:比较器被调用非常非常多次!在比较器中使用慢反射似乎是一种壮丽而光荣的自杀方式。我无法想象不得不这样做(只是因为你不能不应该把苹果和橙子比较,如果你只有苹果,你已经知道如何比较它们了)!
我不明白,你为什么要这样做。如果您发布到目前为止的代码,这将更加清晰,我们可以为您提供更好的帮助!
但是,要回答有关如何捕获通过反射调用的方法引发的异常的问题:
它明确指出InvocationTargetException
在调用的方法因抛出异常而终止时抛出:
InvocationTargetException - 如果底层方法抛出异常。
所以这就是你可以做的,使用Throwable.getCause()
来获取原始异常:
try {
myMethod.invoke(myArgs...);
} catch(InvocationTargetException e) {
Throwable myOriginalException = e.getCause();
}
于 2012-11-10T10:20:26.287 回答