首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Kotlin中的另一个对象中创建未知数量的对象

在Kotlin中的另一个对象中创建未知数量的对象
EN

Stack Overflow用户
提问于 2020-10-12 20:33:02
回答 1查看 55关注 0票数 0

我有以下课程:

代码语言:javascript
运行
复制
class DutyDay(
    val date: Date,
    val hasStby:Boolean,
    val standByStart: Time?,
    val standByEnd: Time?,
    val showTime: Time,
    val closingTime: Time,
    val dutyTime: Float
)

以及另一个类,它将包含上述类的对象:

代码语言:javascript
运行
复制
@Entity(tableName = "tour_table")
data class Tour(
    @PrimaryKey
    val day1: DutyDay,
    val day2: DutyDay?=null,
    val day3: DutyDay?=null,
    val day4: DutyDay?=null,
    val day5: DutyDay?=null,
    val day6: DutyDay?=null,
    val day7: DutyDay?=null,
    val totalHours: Float
)

每个“DutyDay”实例的最小值为1 DutyDays (因此day1不为null),最多为7 DutyDays。旅游名单将存放在房间里。

我是这样做的,所以我不必在旅游中声明49个变量(每DutyDay 7个变量乘以7 DutyDays).

这样做合适吗?day1 to day7是在旅游类的构造函数中正确的位置,还是应该进入类的主体(大括号)?当我意识到我在开始时犯了一个根本的错误时,我只想避免在编码过程中遇到更多的麻烦。

对不起,我很新,谢谢你的回答。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-12 20:59:48

与其静态地定义每次巡演的天数,不如重新开始,因为应该用一对多关系注释正确地表示这样的@Relation

代码语言:javascript
运行
复制
@Entity(tableName = "tours")
data class Tour(
    @PrimaryKey val tourId: Long,
    ...
)

@Entity(tableName = "days")
data class Day(
    @PrimaryKey val dayId: Long,
    val tourId: Long,
    ...
)

data class TourWithDays(
    @Embedded val tour: Tour,
    @Relation(parentColumn = "tourId", entityColumn = "dayId")
    val days: List<Day>
)

DAO方法:

代码语言:javascript
运行
复制
@Transaction
@Query("SELECT * FROM tours")
fun getAllToursWithDays(): List<TourWithDays>

这将是一个比你所拥有的更灵活的(就每次旅游的天数而言)。不需要存储totalHours,因为可以通过SQLite域聚合来计算它们。如果您设计了一个关系数据模型,这可能会使您的方法失效并确认此方法。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64324986

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档