是否可以强制模板的可空性?

时间:2021-05-19 06:56:30

标签: kotlin generics

我想要这样的东西来运行时检查调试版本中的可空值不为空,调试断言,就像 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

被传递使用,这可能还是每个非空类型都继承自其可为空的变体,从而使这成为不可能?

0 个答案:

没有答案