Kac*_*gut 4 android parcel parcelable kotlin android-studio
由于最新的更新 Android Studio 给了我以下警告:
预期类型在 Kotlin 中不接受空值,但在 Java 中该值可能为空
此警告显示在以下代码片段中:
data class Person(
@SerializedName("surname")
surname : String
) {
constructor(parcel: Parcel) : this(
parcel.readString()
)
//Parceable implementation
}
Run Code Online (Sandbox Code Playgroud)
有办法修复它,并隐藏此警告:
首先是使值类型可以为空,这意味着将String更改为String?.
其次是让 readString 始终返回非空值 - readString()!!
我的问题是哪种方法更好。如果值不能为空,readString 是否有可能返回 null?
实际上要容易得多
应用程序内部 build.gradle
androidExtensions {
experimental = true
}
Run Code Online (Sandbox Code Playgroud)
并像这样改变你的班级:
@Parcelize
data class Person(
val surname: String
): Parcelable
Run Code Online (Sandbox Code Playgroud)
至于你的问题——实际上没有。处理像您这样的情况的最佳方法是:
parcel.readString() ?: "",意味着如果结果为空,它将返回空字符串parcel.readString() ?: throw IllegalStateException("Error happened, do something"),这意味着它会抛出一个异常,你根本不需要处理任何可空性。就我个人而言,我会坚持选项 #1
| 归档时间: |
|
| 查看次数: |
1537 次 |
| 最近记录: |