我在基于Kotlin的项目中工作,它迫使我处理任何可能保持null的属性。很高兴找到一些空位是可能的,而不欢迎他们;但是我看到了?.
和.!!
s这么多,因为DB会生成这些属性,例如标识。也许我在滥用那些运营商?
是否有任何约定将属性标记为不可为空但在此仍具有DB生成的值?如果我查找对象,则可以安全地假设DB生成的值不再为null。 VM可以知道吗?也许是通过框架或语言提供的一些注释?
答案 0 :(得分:0)
如果您的id是由数据库生成的,那么它是可以为空的,因为JVM /编译器/ IDE无法知道您的实体是否已经持久化。
你可以做的是实现其他方法,保证通过抛出异常来返回非空值。