小编Ody*_*eus的帖子

Kotlin数据类实现Java接口

我正在尝试将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
Run Code Online (Sandbox Code Playgroud)

其中实现了Java接口:

public interface Entity {
   Long getId();  
}
Run Code Online (Sandbox Code Playgroud)

但由于某些原因,编译器不理解该方法已经实现:

类'Video'必须声明为abstract或实现抽象成员public abstract fun getId():kotlin.Long!在net.alfad.data.Entity中定义

我是否必须为id param使用任何其他关键字?什么"!" 签名意味着什么?

java overriding kotlin data-class

27
推荐指数
1
解决办法
8330
查看次数

JvmOverloads类主构造函数的注释

为什么禁止从类主构造函数自动生成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
Run Code Online (Sandbox Code Playgroud)

此注释不适用于目标"类"

constructor annotations kotlin

20
推荐指数
1
解决办法
4073
查看次数

恢复失败的合并后重新合并

我在存储库中有两个分支:featuremaster.我将master合并到feature并将结果推送到远程功能分支:

git merge master
Run Code Online (Sandbox Code Playgroud)

因为它包含外部接口的必要更改.比我发现合并冲突被解决了错误,我已经恢复了这个合并:

git revert -n -m 1 78e7ebfa8237
Run Code Online (Sandbox Code Playgroud)

所以我回到功能没有合并.但根据历史合并已经发生并且功能分支已经包含必要的更改.我可以再次尝试合并分支(更仔细地检查冲突,而不是在检查构建之前提交)吗?

git git-merge git-revert

3
推荐指数
1
解决办法
4446
查看次数