0

在我的 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 作为反序列化器。

4

2 回答 2

1

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

于 2017-10-26T12:47:22.313 回答
1

最后,甚至超出性能考虑的是代码质量。如果在您的用例中字段实际上永远不会为空,那么我不会使用可空类型。你强迫自己做额外的工作(尽管 Kotlin 让它更容易一些)来迎合你所说的不可能的情况?

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

于 2017-10-26T10:36:05.173 回答