- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
由于最新的更新 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
至于你的问题——实际上没有。处理像您这样的情况的最佳方法是:
parcel.readString() ?: ""
,意味着如果结果为 null,它将返回空字符串parcel.readString() ?: throw IllegalStateException("Error gone, do some")
,这意味着它将抛出异常,并且您根本不必处理任何可空性.就我个人而言,我会坚持选择#1
关于android - Parcelable readString() 可为空警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52185497/
我在运行 OSX 10.9.1 的 Mac 上的 Dr. Java 工作室中运行 javac v1.6.0-65 我收到以下警告: Quick.java:53: warning: [deprecati
我有以下代码,我需要快速执行,但它需要花费大量时间来更改值,无论如何都要加快此任务的速度? 我正在使用 indexOf() 和 substring() 来完成此任务。这是为了改变 LED 条颜色。 /
我正在处理一个带有“客户制造”数据库的项目。他开发了一个 C++/CLI 应用程序,该应用程序使用 BinaryWriter.Write(String) 和 BinaryReader.ReadStri
我正在尝试通过以下方式从网络连接中读取数据: func getIn(conn net.Conn){ for{ in, err := bufio.NewReader(conn).
由于最新的更新 Android Studio 给了我以下警告: Expected type does not accept nulls in Kotlin, but the value may be
我正在开发一个解析器来接收 UDP 信息、解析它并存储它。为此,我使用了 BinaryReader,因为它主要是二进制信息。其中一些将是字符串。 MSDN says对于 ReadString() 函数
我正在从文件中读取记录并插入到数据库中。 我正在使用 DB2 数据库。 记录是这样的: abc pqr abcd 所以在 abc 之前,记录的开头也有几个空格。 我正在使用 Spring
我想使用 System.Xml.XmlReader.ReadString(),但我注意到它没有出现在 Intellisense 中,因为该函数用 [EditorBrowsable(EditorBrow
我正在从我的 android 设备向 esp32 发送一个字符串,我想将 SerialBT.readString() 值存储到一个字符串变量,但它存储为一个空字符串,我该怎么办? if (Serial
我有下一个代码: resp, err := http.Get("https://www.google.com") if err != nil{ panic(err) } r := bufio.
这个问题在这里已经有了答案: Multiple values in single-value context (6 个答案) 关闭 3 年前。 这里是新手。 我正在尝试在 go1.11.4 wind
我正在编写一个应用程序来逐行读取文件列表并进行一些处理。我想尽可能少地使用 RAM。我遇到了这个问题 https://stackoverflow.com/a/41741702/3531263 张贴者说
我将 Parcelable 对象放入 Intent 到下一个 Activity: val intent = Intent(mContext, ShowTestActivity::class.java)
我正在编写代码来从文件中读取字符串。使用时String s = StdIn.readAll();效果很好。但我不明白为什么,通过使用 while (!StdIn.readString().isEmpt
目的是在COM端口中输入“ on”和“ off”并切换引脚13。无论我做什么。它不会打开或关闭。需要帮忙。我试图查看我输入的字符串是否为“ on”。它打印“开”,但是当我检查结果时,它显示出不同的结果
我创建了一个名为 useraccounts.txt 的文本文件。我想做的一切使用文件句柄类读取文件,但我总是得到这个异常 Exception in thread "LWJGL Application"
您好,我是 HTK 的新手,并已遵循 http://htk.eng.cam.ac.uk/ 的 HTK 书中的“使用 HTK 的教程示例” 我已经到了必须使用“HCompV”的地步(3.2.1 第 6
package main import ( "bufio" "fmt" "os" ) func main() { reader := bufio.NewReader(o
我这样做是为了在 CTRL-C 时不再要求输入。 我目前拥有的是一个单独的 go-routine,在收到 CTRL-C 后,会更改变量的值,因此它不会请求另一行。但是,我似乎找不到绕过当前行的方法。
我有一个套接字客户端读取这样的响应: message, err := bufio.NewReader(conn).ReadString('\n') 它工作得很好,但 ReadString 方法似乎对缓
我是一名优秀的程序员,十分优秀!