【发布时间】:2017-07-10 20:13:42
【问题描述】:
我花了很长时间试图弄清楚如何将多个 Migration 实例传递给 Dagger2 模块的 Room 数据库构建器。
Room 数据库构建器需要上下文和数据库名称。
Room.databaseBuilder(context, Database::class.java, dbName)
.build()
可以使用addMigrations 方法将迁移添加到构建器,该方法采用vararg migrations: Migration!
一种选择是创建构建器。
val builder = Room.databaseBuilder(context, Database::class.java, dbName)
然后 forEach 通过迁移
migrations.forEach { builder.addMigrations(it) }
然而这是混乱且不必要的,应该使用扩展运算符。
我设法错过了这一点,因为我为展开运算符找到的唯一文档是文档中的一个句子。
当我们调用一个可变参数函数时,我们可以一个接一个地传递参数,例如asList(1, 2, 3),或者,如果我们已经有一个数组并且想要将其内容传递给函数,我们使用扩展运算符(以 * 为数组前缀)
【问题讨论】:
-
您的实际问题是什么?
标签: kotlin dagger-2 android-room