[英]Override Java interface with only getters in Kotlin
我在 Java 中有這個接口:
public interface ErrorInfo {
String getCode();
String getMessage();
}
我希望它在 Kotlin 代碼中覆蓋。 我好像做不到
這是我嘗試過的:
在這里,我收到一個錯誤,即'<field> overrides nothing'
class ErrorInfoImpl(
override val code: String,
override val message: String
) : ErrorInfo
在這里,我收到相同的錯誤'<field> overrides nothing'
class ErrorInfoImpl(
code: String,
message: String
) : ErrorInfo {
override val code: String = code
override val message: String message
}
此代碼有效,但看起來很臟:
class ErrorInfoImpl(
private val __code: String,
private val __message: String
) : ErrorInfo {
override fun getCode(): String = __code
override fun getMessage(): String = __message
}
有沒有更好的方法來做到這一點?
契約是只有getCode()
和getMessage()
方法。 它返回什么取決於實現類。 在這種情況下,最干凈的如下:
class ErrorInfoImpl(
private val code: String,
private val message: String
) : ErrorInfo {
override fun getCode(): String = code
override fun getMessage(): String = message
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.