android - 如何修复可空接收器的不安全使用错误?
问题描述
代码 A 来自camera-samples。
但 Android Studio 编译器显示以下警告信息
不安全地使用 Array 类型的可空接收器?
我该如何解决?
代码 A
private lateinit var mediaList: MutableList<File>
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val rootDirectory = File(args.rootDirectory)
mediaList = rootDirectory.listFiles { file ->
EXTENSION_WHITELIST.contains(file.extension.toUpperCase())
}.sorted().reversed().toMutableList()
}
解决方案
虽然我无法重现您的问题,但您可以尝试?
在不是 100% 不为空的对象末尾添加。
之后,如果 object 确实为 null(提供默认值),则需要处理这种情况。
例如:
val list: List<String>? = null
val firstValue = list?.first() ?: "default value"
在上面的例子中,代码不会编译list.first()
希望这可以帮助。
推荐阅读
- r - `observe` 在 `observeEvent` 或 `if` 中的行为
- rust - 为什么在 Rust 中 [有时] 不需要对泛型使用生命周期说明符?
- java - 无法以 UTF8/ISO_8859_1 编码文件
- python - Numpy.random.normal 给出不好的结果
- xamarin.forms - Xamarin 表单:数据绑定
- java - 移动自动化代码未运行并给出与诱惑相关的错误
- azure - 使用 AAD 文档的 Azure URL 授权规则
- swift - 有没有办法让 CGRect 从父视图调整它的大小?
- stack - 为什么“已检测到任务iot_thread中的堆栈溢出”不断出现?
- python - 警告:tensorflow:已编译加载的模型,但尚未构建编译的指标