Объявление поля 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 полей. Затем я использую Моши или Гсона для десериализатора.

В конце концов даже за пределами соображений производительности качество кода. Если поля в действительности не будут иметь нулевое значение в ваших случаях использования, я бы не использовал типы с нулевым значением. Вы заставляете себя делать дополнительную работу (хотя Котлин делает это несколько легче), чтобы удовлетворить сценарий, который кажется, что вы говорите, не представляется возможным?

На другой стороне; если в этом сценарии не было поля в сериализованном виде, вы не можете сразу его поймать, потому что поле в классе имеет значение по умолчанию. Если вы уверены в данных, предоставляемых, хотя это не должно быть проблемой.

IMO, память и производительность не должны учитываться при выборе между этими двумя подходами. Это зависит от того, как вы хотите, чтобы класс вел себя так. Использовать значение по умолчанию (подход 2) или значение null (подход 1). Это имеет значение, когда вам нужно обращаться с логикой этого класса.

Intereting Posts
Kotlin / Android – KotlinReflectionInternalError в классе данных с лямбдой только классы разрешены в левой части литерала класса Как использовать анонимные классы Kotlin в качестве аргументов для собственных функций JavaScript? Комната + кинжал 2. NPE Что такое простой MapRowParser в Anko? IllegalArgumentException: параметр, заданный как непустой, равен null Tornadofx tableview синхронизирует две таблицы Почему бы мне не сделать каждый класс класса Котлин классом данных? Spring Boot 2.0.0.M7, Kotlin, Gradle – bean не удалось найти Как я могу использовать модель представления, с sqlite и широковещательным приемником для обновления пользовательского интерфейса? Заявление о создании платформы с сопоставимым андроидный статический старт-метод активности в Котлине Kotlin NDArray с конструктором лямбда с общим типом возврата что эквивалентно этому java-коду kotlin Связывание представления с изменяющимся свойством контроллера