java - 确定 Java 语言功能是否在特定的 Android SDK(平台)中可用

标签 java android casting java-8

我正在学习 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/

相关文章:

java - 无法在 Python 3.5 中从 PyQt5 导入 QWebPage

java - 如何更改android studio中的编码

java - Android:蓝牙应用在启动时崩溃

android - kotlin 类,我在类外修改了一个列表,它最终修改了类内的值

c - 调用 size_t *size as *z 时读取访问冲突

java - 检查 Java 中对象是否被强制转换为其动态类型

java - 无法从第三列获取值

android - 在水平 ScrollView 中的 ImageView 列表之间添加边框/分隔符

javascript - 移动浏览器的样式下拉列表

C++ 使用带字符串的标准算法,带 isdigit 的 count_if,函数转换