我正在学习 Android 开发,我注意到 findViewById() 的文档说不需要强制转换其返回的对象:
<Android API 26 Platform>
... resulting view is automatically cast to the target class type...
如果不需要,我宁愿不强制转换(编写和读取的代码更少!),但这似乎是 Java 8 的一项功能。然而,我希望我的应用程序能够在 19 (Kitkat) 之前的平台上运行。
页面https://developer.android.com/studio/write/java8-support.html似乎没有涵盖 Java 8 中可用的自动类型转换,SO 上的各种其他问题/答案表明 Java 8 的一些功能一直适用于 SDK 9。
首先,我如何判断一个 Java 语言特性是否在我的目标 SDK 范围内?其次,已有数年历史的平台 API 怎么可能支持新的语言功能?
最佳答案
如果您的 compileSdkVersion 是 >= 26
,即 Android O
,您不必转换 findViewById()
返回的对象。它与 Java 8 无关。
如果特定 API 不受支持或已弃用,Android Studio 将根据 API 显示错误或警告。
关于java - 确定 Java 语言功能是否在特定的 Android SDK(平台)中可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46427097/