我已经开始将我的一些代码从 Java 转换为 Kotlin。
其中一些是数据库模式类,包含不同列名的常量(我在这里使用 Android)。
我已经final class
用static
常量修改了我的 Java,因此它是object
Kotlin 中的常量(const
):
object MySchema : BaseColumns {
const val TABLE_NAME = "my_table"
const val COL_TITLE = "title"
const val COL_DETAIL = "detail"
// ...
}
Android中的BaseColumns
类基本上是这样的:
public interface BaseColumns {
public static final String _ID = "_id";
public static final String _COUNT = "_count";
}
但是,此代码现在无法编译:
// ContentValues values = ...
values.put(MySchema._ID, myThing.getId())
未解决的参考:_ID
这对我来说没有意义,因为MySchema
实现了BaseColumns
接口,因此应该继承它的字段。
在我将数据库模式类转换为 Kotlin 之前,未编译的代码能够编译 - 即:
public final class MySchema implements BaseColumns {
// ...
}
我希望这是有道理的。
我在这里做错了什么?