【问题标题】:Room Junction syntax in KotlinKotlin 中的 Room Junction 语法
【发布时间】:2019-11-22 18:25:09
【问题描述】:

在以下示例中,FolderItem::class 属于Junctionvalue 属性,即使它没有明确说明:

class FolderWithItems(
        @Embedded
        val folder: Folder,
        @Relation(
                associateBy = Junction(
                        FolderItem::class,
                        parentColumn = "folder_id",
                        entityColumn = "item_id"
                ),
                parentColumn = "id",
                entityColumn = "id"
        )
        val items: List<Item>
)

它的编译和运行就像我要写出来一样:

value = FolderItem::class

在这种情况下,让您不必指定 value = 的 Kotlin 原则/规则/语言功能是什么?

【问题讨论】:

    标签: android kotlin android-room


    【解决方案1】:

    【讨论】:

    • 好的,有道理。我认为让我感到困惑的是Junction 在其类头中有'@interface',这是我以前不熟悉的,但this answer 帮助我理解了这意味着什么。另外,有趣的是,如果我删除例如parentColumn = ,那么Android Studio 会说“只有命名参数可用于Java 注释”,但是当value = 被删除时它不会抱怨。
    • @glucaio 实际上,如果 Junction 是这里的注释(这是有道理的,我忽略了),那么我的答案是不正确的。我已经修好了。
    • 好的,感谢修复。我不知道。现在一切都说得通了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-12
    • 2017-10-23
    • 2022-06-29
    • 1970-01-01
    • 1970-01-01
    • 2021-01-01
    相关资源
    最近更新 更多