【问题标题】:How can I fix the Unsafe use of a nullable receiver error?如何修复可空接收器的不安全使用错误?
【发布时间】:2021-03-15 14:41:56
【问题描述】:

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

【问题讨论】:

    标签: android kotlin


    【解决方案1】:

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

    如果object真的为null(提供默认值),你需要处理这种情况。

    例如:

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

    在上面的示例中,仅使用 list.first() 无法编译代码

    希望这会有所帮助。

    【讨论】:

      【解决方案2】:
          var name: String? = null
          var _name = ""
          
          
          var value = name ?: "" //empty value 
      
      private lateinit var mediaList: MutableList<File>
      
      for lateInit use `isInitialized`  check
      
      
          if(this::mediaList.isInitialized && null!=mediaList && mediaList.size>0){
          
          }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-03-22
        • 2021-01-20
        • 2015-05-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-12-18
        • 1970-01-01
        相关资源
        最近更新 更多