我需要在 Android SDK v9 中调用一个方法,同时保持与旧版本的兼容性。
Android 开发者博客推荐使用反射或包装类,但这真的有必要吗?为什么我不能这样做?
if (Build.VERSION.SDK_INT >= 9)
callNewMethod();
在我看来,由于 Java 运行时链接,这将起作用,因为我正在使用 SDK 9 构建。这种方法有什么问题吗?
提前致谢...
我需要在 Android SDK v9 中调用一个方法,同时保持与旧版本的兼容性。
Android 开发者博客推荐使用反射或包装类,但这真的有必要吗?为什么我不能这样做?
if (Build.VERSION.SDK_INT >= 9)
callNewMethod();
在我看来,由于 Java 运行时链接,这将起作用,因为我正在使用 SDK 9 构建。这种方法有什么问题吗?
提前致谢...
不一定是更好的答案,但您在那里进行的检查假定 OS/ROM 的构建者正确设置了该值。如果设置不正确,那么您可能会尝试访问 SDK 9 中确实不存在的方法。使用反射是 100% 确保不会通过尝试调用不存在的方法而产生运行时错误的唯一方法。
一点都不。实际上,在开发具有广泛 API 级别目标的应用程序时,它被提升为最佳方法。
反射类是最扎实的方法,如果你不知道类的内容是什么,方法存在的话。但是在 Android 中,您知道什么是支持的,什么是不支持的。
结果,我不喜欢您提供的博客:p