Объявление поля 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 показывают значок блокировки? Есть ли у Котлина «характер»? Есть ли способ потребовать, чтобы общий тип был классом данных в Котлин? Можно ли сопоставить функцию более высокого порядка в котлине с строкой Kotlin: можете ли вы объяснить функции расширения члена? Firebase-Firestore не загружает 2 документа одновременно Почему неразрешенная ссылка на попытку доступа к постоянным значениям? Как безопасно решить эту нулевую проверку в инициализаторе? Как вызвать LivePagedListProvider с аргументом в базе данных комнаты Кинжал 2: Невозможно найти сгенерированный класс в Intellij Idea (Kotlin) Котлинское умножение между обнуляемыми и невалютными ошибками float даже с нулевой проверкой Запись в базе данных с Android Не может быть возврата внутри Runnable SAM в Котлин? Как вы выполняете выборку api? Android Studio не применяет мои изменения в дизайне