如何检查对象是不是为空
Posted
技术标签:
【中文标题】如何检查对象是不是为空【英文标题】:How do I check if an object is null如何检查对象是否为空 【发布时间】:2020-11-26 16:10:14 【问题描述】:我有一个 CrudRepository 类,我通过他们的电子邮件地址从中获取员工。
val existingEmployee: Employee? = employeeManagementService.findEmployeeByEmail(employeeData.email)
如何检查 existingEmployee 是否返回 null
【问题讨论】:
【参考方案1】:你可以试试这个
existingEmployee?.let
//Do your stuffs
【讨论】:
【参考方案2】:您可以使用范围函数:
existingEmployee?.let it ->
//Employee not null
?: //employee is null
还是走老路:
if (existingEmployee != null)
【讨论】:
第一种方法奏效了。我使用了第二种方法,无论如何它都会返回true。谢谢。 构造x?.let ... ?: ...
不起作用!它不等同于 if-else,因为如果 let 块返回非空值,elvis 运算符 后面的代码将被执行。见here
@FrankNeblung 如果existingEmployee
对象不为空,则let
范围函数内的代码将执行。我不确切知道 OP 希望他的代码如何执行,我包含 Elvis 运算符只是为了演示可用的选项。
@FrankNeblung elvis 代码将在 x 为 null 或 let 返回 null 时运行。
查看here 正在执行的两个分支【参考方案3】:
文档非常好,我建议您正确阅读。可空性主题在here 讨论,专门回答您的问题:
val b: String? = "Kotlin"
if (b != null && b.length > 0)
print("String of length $b.length")
else
print("Empty string")
【讨论】:
以上是关于如何检查对象是不是为空的主要内容,如果未能解决你的问题,请参考以下文章
检查 GitHub Actions 工作流程中的对象是不是为空