gpt4 book ai didi

android - Parcelable readString() 可为空警告

转载 作者:行者123 更新时间:2023-12-02 05:49:05 26 4
gpt4 key购买 nike

由于最新的更新 Android Studio 给了我以下警告:

Expected type does not accept nulls in Kotlin, but the value may be null in Java

此警告出现在以下代码 fragment 中:

data class Person(

@SerializedName("surname")
surname : String

) {
constructor(parcel: Parcel) : this(
parcel.readString()
)
//Parceable implementation
}

有多种方法可以修复它并隐藏此警告:

首先是使值类型可为空,这意味着将 String 更改为 String?

第二个是让 readString 始终返回非空值 - readString()!!

我的问题是哪种方法更好。如果值不能为空,readString 是否有可能返回 null?

最佳答案

实际上更容易

应用程序内部的build.gradle

androidExtensions {
experimental = true
}

并像这样更改你的类:

@Parcelize
data class Person(
val surname: String
): Parcelable

至于你的问题——实际上没有。处理像您这样的情况的最佳方法是:

  1. parcel.readString() ?: "",意味着如果结果为 null,它将返回空字符串
  2. 编写 parcel.readString() ?: throw IllegalStateException("Error gone, do some"),这意味着它将抛出异常,并且您根本不必处理任何可空性.

就我个人而言,我会坚持选择#1

关于android - Parcelable readString() 可为空警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52185497/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com