我有一个自定义的Exception
类,如下所示:
class GenericException(message: String?, errorCode: Int) : RuntimeException(message), GraphQLError {
.....
}
众所周知,RuntimeException extends Throwable
的方法叫getMessage()
现在的问题是,此接口GraphQLError
(这是一个库接口) 也有一种名为getMessage()
结果,编译器对此抱怨:
好的,所以我实现了该方法:
override fun getMessage(): String {
TODO("Not yet implemented")
}
现在我明白了:
我应该在这里做什么?
答案 0 :(得分:1)
我在评论中猜测是正确的,kotlin允许多重继承。确实是因为Throwable类。
您可以使用@JvmField
批注指示编译器不要为该字段生成getter和setter,然后自己创建getter / setter。
interface HasMessage {
fun getMessage(): String
}
class GenericException(
@JvmField override val message: String?, // var is also possible
val errorCode: Int // I made it a property, might not be as well
) : RuntimeException(message), HasMessage {
override fun getMessage(): String {
// return of the super's getter, probably no use because you have field as property in this class
val superGetMessage = super<RuntimeException>.message
TODO("Not yet implemented")
}
}