Как я могу получить несколько значений из объекта, не вызывая имя объекта каждый раз? - PullRequest
0 голосов
/ 01 июня 2019

У меня есть класс Weekdays, который имеет 7 параметров. У меня также есть entity объект, который содержит все необходимые аргументы для удовлетворения Weekdays класса. Обычно я бы написал что-то вроде этого для инициализации этого класса:

   Weekdays(entity.isMonday,
            entity.isTuesday,
            entity.isWednesday,
            entity.isThursday,
            entity.isFriday,
            entity.isSaturday,
            entity.isSunday)

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

1 Ответ

0 голосов
/ 01 июня 2019

В зависимости от ваших требований, вы можете добавить вторичный конструктор к вашему классу Weekdays, который вызывает первичный конструктор следующим образом.

Или вы можете добавить метод фабрики к его объекту-компаньону, который может использовать with, чтобы немного упростить, например ::10000*

class Weekdays(/*...*/) {
    /*
    ...
    */
    companion object {
        fun Weekdays(entity: Entity) = with(entity) {
            Weekdays(isMonday, isTuesday, isWednesday, isThursday, isFriday, isSaturday, isSunday)
        }
    }
}

Или вы можете реструктурировать Weekdays так, чтобы он имел массив или другую структуру вместо именованных полей.

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