0

我需要在 Android SDK v9 中调用一个方法,同时保持与旧版本的兼容性。

Android 开发者博客推荐使用反射或包装类,但这真的有必要吗?为什么我不能这样做?

if (Build.VERSION.SDK_INT >= 9)
    callNewMethod();

在我看来,由于 Java 运行时链接,这将起作用,因为我正在使用 SDK 9 构建。这种方法有什么问题吗?

提前致谢...

4

2 回答 2

1

不一定是更好的答案,但您在那里进行的检查假定 OS/ROM 的构建者正确设置了该值。如果设置不正确,那么您可能会尝试访问 SDK 9 中确实不存在的方法。使用反射是 100% 确保不会通过尝试调用不存在的方法而产生运行时错误的唯一方法。

于 2012-07-24T18:41:21.853 回答
1

一点都不。实际上,在开发具有广泛 API 级别目标的应用程序时,它被提升为最佳方法。

反射类是最扎实的方法,如果你不知道类的内容是什么,方法存在的话。但是在 Android 中,您知道什么是支持的,什么是不支持的。

结果,我不喜欢您提供的博客:p

于 2012-07-24T18:42:20.700 回答