POJO字段声明,设置为初始值或null

POJO field declaration, set to init value or null

在我的 POJO 中,我通常这样声明字段

class SampleModel {
    var field1: String? = null
    var field2: Int? = null
    <more fields here>
}

如果我这样声明,我将需要检查该字段是否为空。

但是如果像这样:

class SampleModel {
    var field1 = ""
    var field2 = 0
    <more fields here>
}

我可以直接用

使用哪个声明重要吗? 比如内存、性能或任何可以做的好事?

假设我有 100 个字段。 然后我使用 Moshi 或 Gson 作为反序列化器。

最终,除了性能考虑之外,还有代码质量。如果在您的用例中这些字段实际上永远不会为空,那么我就不会使用可为空的类型。您是在强迫自己做额外的工作(尽管 Kotlin 使它更容易一些)来满足您认为不可能的场景?

另一边;如果序列化中的某个字段在这种情况下丢失,您可能不会立即捕获它,因为 class 中的字段具有默认值。如果您对所提供的数据有信心,这应该不是问题。

IMO,当您在这两种方法之间进行选择时,不应考虑内存和性能。这取决于您希望 class 的行为方式。具有默认值(方法 2)或 null(方法 1)。当您需要处理此 class.

的逻辑时,这很重要