【发布时间】:2016-06-08 11:06:27
【问题描述】:
我正在尝试将 Kotlin 引入我当前的项目中。我决定从实体开始,它似乎完美地映射到数据类。 例如我有一个数据类:
data class Video(val id: Long, val ownerId: Long, val title: String, val description: String? = null,
val imgLink: String? = null, val created: Date? = null, val accessKey: String? = null,
val views: Long? = null, val comments: Long? = null, val videoLink: String? = null): Entity
其中实现了Java接口:
public interface Entity {
Long getId();
}
但由于某种原因编译器不理解该方法已经实现:
类“视频”必须声明为抽象或实现抽象成员 public abstract fun getId(): kotlin.Long!在 net.alfad.data.Entity 中定义
我必须为 id 参数使用任何其他关键字吗? "!" 是什么意思签名中的意思?
【问题讨论】:
-
签名中的
!表示这是一个平台类型,即来自 Java 的类型。你可以找到更多关于in the docs
标签: java overriding kotlin data-class