我想要这样的东西来运行时检查调试版本中的可空值不为空,调试断言,就像 C/C++ 项目具有不同级别断言的约定一样,
val <T> T.debugAssertNotNull: T
get() = this ?: throw NullPointerException("A debug only assert has happened")
这很好用,只是如果这个 T 自动能够只接受可为空的值或至少在传递非空值时进行提示会更好
"123".debugAssertNotNull
或当“?。”不小心用了“.”,
val a: String? = null
val b = a?.debugAssertNotNull
被传递使用,这可能还是每个非空类型都继承自其可为空的变体,从而使这成为不可能?