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

时间:2017-10-26 08:38:41

标签: kotlin deserialization moshi android gson

在我的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作为解串器。

2 个答案:

答案 0 :(得分:1)

最后,即使超出性能考虑因素,代码质量也是如此。如果在您的用例中字段永远不会为null,那么我不会使用可空类型。你正在强迫自己做额外的工作(虽然Kotlin让它更容易一些),以迎合你认为不可能的场景?

另一方面;如果序列化中的字段在此方案中丢失,则可能无法立即捕获它,因为类中的字段具有默认值。如果您对提供的数据有信心,虽然这应该不是问题。

答案 1 :(得分:1)

在您选择这两种方法时,不应考虑IMO,记忆和表现。这取决于你希望班级表现的方式。具有默认值(方法2)或null(方法1)。当你需要处理这个类的逻辑时,这很重要。