var _age: Int? = 0
public var isAdult: Boolean? = false
get() = _age?.compareTo(18) >= 0
这仍然给我提供了一个空安全的编译错误,但是在这种情况下如何使用>, =或
最佳答案
var age : Int? = 0
public val isAdult : Boolean?
get() = age?.let { it >= 18 }
另一种解决方案是使用委托(delegate):
var age : Int by Delegates.notNull()
public val isAdult : Boolean
get () = age >= 18
因此,如果您尝试获取年龄或在实际分配年龄之前检查isAdult,则会获得异常而不是null。
无论如何,我认为年龄= 0是某种魔术,有一天可能会导致问题(甚至产品问题)。
关于kotlin - 在Kotlin中对可空整数使用 “greater than”和 “less than”比较的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29223898/