首页 > 解决方案 > 如何修复可空接收器的不安全使用错误?

问题描述

代码 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()
    }

标签: androidkotlin

解决方案


虽然我无法重现您的问题,但您可以尝试?在不是 100% 不为空的对象末尾添加。

之后,如果 object 确实为 null(提供默认值),则需要处理这种情况。

例如:

val list: List<String>? = null
val firstValue = list?.first() ?: "default value"

在上面的例子中,代码不会编译list.first()

希望这可以帮助。


推荐阅读