hhg*_*hhg 4 java implementation interface class kotlin
我有一个Java接口
public interface SampleInterface extends Serializable {
Long getId();
void setId(Long id);
}
Run Code Online (Sandbox Code Playgroud)
和应该实现它的Kotlin类
open class ClazzImpl() : SampleInterface
private val id: Unit? = null
fun getId(): Long? {
return null
}
fun setId(id: Long?) {
}
Run Code Online (Sandbox Code Playgroud)
但是我得到一个编译错误:
类ClazzImpl不是抽象的,并且没有实现抽象成员public abstract fun setId(id:Long!):在com .... SampleInterface中定义的单元
任何想法有什么问题吗?
Egor和tynn的其他答案很重要,但是您在问题中提到的错误与他们的答案无关。
您必须先添加花括号。
open class ClazzImpl() : SampleInterface {
private val id: Unit? = null
fun getId(): Long? {
return null
}
fun setId(id: Long?) {
}
}
Run Code Online (Sandbox Code Playgroud)
如果添加花括号,该错误将消失,但您将收到一个新错误,如下所示:
“ getId”隐藏超型“ SampleInterface”的成员,并且需要“ override”修饰符
现在,如其他答案中所建议,您必须向函数添加override修饰符:
open class ClazzImpl() : SampleInterface {
private val id: Unit? = null
override fun getId(): Long? {
return null
}
override fun setId(id: Long?) {
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5755 次 |
| 最近记录: |