首页 > 解决方案 > 如何从对象中获取多个值而不每次都调用对象的名称?

问题描述

我有Weekdays一个有 7 个参数的类。我还有entity一个对象,其中包含满足Weekdays类的所有必需参数。通常我会写这样的东西来初始化这个类:

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

但是每次我需要调用entity对象来从中获取价值。是否有任何关键字可以让我entity每次想从中获得价值时都不要打电话?

标签: kotlin

解决方案


根据您的要求,您可以向您的Weekdays类添加一个辅助构造函数,它以所示方式调用主构造函数。

或者你可以在它的伴生对象中添加一个工厂方法,它可以with用来简化一点,例如:

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

或者您可以重组Weekdays,使其具有数组或其他结构,而不是命名字段。


推荐阅读