例如下面的伪代码,
Assert.assertNotNull(cut.func())
其中cut
是受测试的非空类,而func()
是一些返回void的函数。
此外,假设func()
没有引发任何错误,这将导致有效断言。
由于isn't possible to set an object to be null from within itself in Java / Kotlin(即func()
不能将cut
设置为null
),为什么在 non-null内调用void函数有效? strong>断言?
是因为void
与null
不同吗?
答案 0 :(得分:3)
Java的void
返回类型被映射到Kotlin中的Unit
对象,而Unit
不是null
。
val x = System.out.println("") // void Java method
println(x == null) // "false"
println(x == Unit) // "true"