我想在当前项目中引入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();
}
但出于某种原因,编译器无法理解该方法已经被实现:
类“Video”必须声明为抽象或实现抽象成员public abstract fun getId(): kotlin.Long! defined in net.alfad.data.Entity
我是否需要为id参数使用任何其他关键字? 签名中的“!”代表什么意思?
!
表示这是一个平台类型,即来自Java的类型。您可以在文档中了解更多相关信息。 - Alexander Udalov