gpt4 book ai didi

java - Kotlin类实现Java接口(interface)报错

转载 作者:搜寻专家 更新时间:2023-11-01 01:15:41 25 4
gpt4 key购买 nike

我有一个 Java 接口(interface)

public interface SampleInterface extends Serializable {
Long getId();
void setId(Long id);
}

以及应该实现它的 Kotlin 类

open class ClazzImpl() : SampleInterface

private val id: Unit? = null

fun getId(): Long? {
return null
}

fun setId(id: Long?) {

}

但是我得到一个编译错误:

Class ClazzImpl is not abstract and does not implement abstract member public abstract fun setId(id: Long!): Unit defined in com....SampleInterface

有什么问题吗?

最佳答案

Egor 和 tynn 的其他答案很重要,但是你在问题中提到的错误与他们的答案无关。

您必须先添加花括号。

open class ClazzImpl() : SampleInterface {

private val id: Unit? = null

fun getId(): Long? {
return null
}

fun setId(id: Long?) {

}

}

如果你添加花括号,那个错误就会消失,但你会得到一个新的错误,如下所示:

'getId' hides member of supertype 'SampleInterface' and needs 'override' modifier

现在,正如其他答案中所建议的,您必须向函数添加覆盖修饰符:

open class ClazzImpl() : SampleInterface {

private val id: Unit? = null

override fun getId(): Long? {
return null
}

override fun setId(id: Long?) {

}

}

关于java - Kotlin类实现Java接口(interface)报错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45800630/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com