我在Android项目中使用的是Kotlin 1.0.1-2。我想使用DBFlow作为我的ORM。但是它要求使用Table注释来持久化我的类。表注释具有数据库属性。并且此属性需要一个KClass。但是,以下代码根本无法编译。错误显示:Unresolved reference KClass。那是谁的错提前致谢。

import com.raizlabs.android.dbflow.annotation.Column
import com.raizlabs.android.dbflow.annotation.PrimaryKey
import com.raizlabs.android.dbflow.annotation.Table
import com.raizlabs.android.dbflow.structure.BaseModel
import java.util.*
import kotlin.reflect.KClass

@Table(name = "items", database = KClass<AppDatabase>)
class Item : BaseModel() {
    @PrimaryKey(autoincrement = true)
    @Column(name = "id")
    var id: Long = 0
    @Column(name = "updated_at")
    var updatedAt: Calendar = Calendar.getInstance()
}

最佳答案

显然我不应该以这种方式使用KClass。当前Kotlin中正确的方法是AppDatabase::class而不是KClass<AppDatabase>

08-17 20:50