Java 反射中是否有一种方法可以调用 getMethod 或其他在找不到方法时不会引发异常的方法?也许只是返回一个空值?
我正在通过一个应用程序来减少预期的异常,这似乎是一个可能的候选者。
Java 反射中是否有一种方法可以调用 getMethod 或其他在找不到方法时不会引发异常的方法?也许只是返回一个空值?
我正在通过一个应用程序来减少预期的异常,这似乎是一个可能的候选者。
null
如果找不到匹配项,您可以遍历 getMethods() 并返回。
根据您的应用程序需求,可能适合使用getMethods()。它返回类中所有已定义方法的数组。您可以按名称映射返回的方法,或随意使用它们。但是请注意,这可能比仅在您需要的方法上调用 getMethod() 并最终捕获异常要慢。在这种情况下,一些缓存可能会有所帮助。
如果您还没有阅读这篇文章,请查看。
Android开发者的网站似乎没有使用try-catch
块来实现这种效果的问题......我认为你应该没问题。
如果跨多个 SDK 的兼容性是您主要关心的问题,您可以通过将代码包装在if-else
块中来避免反射,如下所示:
if (currentAPIVersion >= android.os.Build.VERSION_CODES.FROYO){
// Do something for froyo and above versions
} else{
// do something for phones running an SDK before froyo
}