我正在尝试将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'必须声明为abstract或实现抽象成员public abstract fun getId():kotlin.Long!在net.alfad.data.Entity中定义
我是否必须为id param使用任何其他关键字?什么"!" 签名意味着什么?
为什么禁止从类主构造函数自动生成Java中可见的许多构造函数,默认params喜欢这个?
@JvmOverloads
class Video(private val id: Long, val ownerId: Long, var title: String? = null, var imgLink: String? = null, var videoLink: String? = null,
        var description: String? = null, var created: Date? = null, var accessKey: String? = null, var duration: Long? = null,
        var views: Long? = null, var comments: Long? = null) : Entity
此注释不适用于目标"类"
我在存储库中有两个分支:feature和master.我将master合并到feature并将结果推送到远程功能分支:
git merge master
因为它包含外部接口的必要更改.比我发现合并冲突被解决了错误,我已经恢复了这个合并:
git revert -n -m 1 78e7ebfa8237
所以我回到功能没有合并.但根据历史合并已经发生并且功能分支已经包含必要的更改.我可以再次尝试合并分支(更仔细地检查冲突,而不是在检查构建之前提交)吗?
kotlin ×2
annotations ×1
constructor ×1
data-class ×1
git ×1
git-merge ×1
git-revert ×1
java ×1
overriding ×1