При использовании данных из REST API лучше генерировать класс данных или просто обычный нормальный класс? - PullRequest
0 голосов
/ 09 октября 2018

Предположим, у меня есть API, который будет возвращать мне ответ о пользовательской информации:

  • имя
  • возраст

В обычном классе ясоздаст класс UserInfo:

class UserInfo (val username:String, val age:String)

Но я нашел много людей, которые предположили, что это должен быть класс данных (и часть из них предложили, что он ДОЛЖЕН БЫТЬ):

data class UserInfo (val username:String, val age:String)

AFAIK, независимо от того, является ли UserInfo классом данных или нет, по умолчанию он public final , он автоматически генерирует функцию получения свойств, которые по умолчанию также являются public final , исвойства не могут быть назначены с любым значением.

Я знаю, класс данных автоматически генерирует / переопределяет полезные функции, такие как copy () , toString () и равно () .Если мне нужно только получить имя и возрастные значения класса UserInfo, и нет необходимости сравнивать равенство UserInfo, мне все равно нужно объявить его как класс данных?

Ответы [ 2 ]

0 голосов
/ 09 октября 2018

Я бы также предложил использовать класс данных.Без правильного указания hashCode и equals невозможно безопасно использовать UserInfo в коллекциях.

0 голосов
/ 09 октября 2018

Исходя из заданного вами контекста, класс UserInfo должен быть объявлен как класс данных.

Роль классов данных состоит в том, чтобы хранить только данные, необходимые для представления этой структуры, без какого-либо поведения, и этоименно то, что у вас есть с UserInfo, вы хотите хранить только эти данные.Это не значит, что вы обязаны каким-либо образом использовать класс данных, но это будет иметь больше смысла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...