在这里,我有一个将字符串格式化为 LocalDateTime 并将其返回的函数。
val dateSentFormatted = timeFormatted(record.data.dateTime);
private fun timeFormatted(dateEmailSent: String?): LocalDateTime {
val formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd:HH:mm:ss");
return LocalDateTime.parse(dateEmailSent, formatter);
}
我的问题是我想在我文件的其他地方运行一个 if 语句来检查它是否为空,如下所示:
if (!dateSentFormatted != null ) {
}
但它不喜欢那样,我还能如何检查 if 语句中 LocalDateTime 类型的变量是否为空?
原文由 sisternight438 发布,翻译遵循 CC BY-SA 4.0 许可协议
Method
parse(CharSequence, DateTimeFormatter)
of thejava.time.LocalDateTime
class does not acceptnull
as the character sequence (first parameter), so you have to make an explicitnull
检查并将函数的返回重写为(顺便说一句,你不必有分号(
;
))此外,所写函数的返回类型不可为空,因此您必须将其更改为
LocalDateTime?
。而且,如果在
dateEmailSent
是null
的情况下不使用它,那么创建解析器/格式化程序是没有意义的,我建议按如下方式重写整个函数:最后一部分由您决定,如果您想实现问题中描述的功能,其余部分几乎是强制性的。