POJO字段声明,设置为init值或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作为解串器。

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

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

在这两种方法之间进行选择时,IMO,记忆和性能不应该被考虑在内。 这取决于你想要课堂表现如何。 有一个默认值(方法2)或null(方法1)。 当你需要处理这个类的逻辑时,这很重要。