Эволюция состояний в Corda требует, чтобы все новые поля, добавленные в состояние, допускали обнуление, так как они могут быть созданы из предыдущих версий состояния, у которых нет поля, nullable является единственным логическим вариантом для создания экземпляров состояний против новогоструктура объекта.
Например ...
data class OldState(val foo: Int)
data class NewState(val foo: Int, var bar: String? = null)
При обновлении с OldState
до NewState
будет отображаться foo
до foo
, поскольку свойства идентичны, но будутоставьте bar
как ноль, потому что в предыдущем состоянии не было ничего, чтобы заполнить это поле ненулевым значением.