java - 在 Kotlin 中仅使用 getter 覆盖 Java 接口
问题描述
我在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
}
推荐阅读
- polymorphism - Dafny 中的多态性
- mule - 条件表达式在 Mule 4 中不起作用
- cluster-analysis - 聚类分析:用负轮廓宽度校正观测值
- android - Access the localhost via android device Easyphp
- html - 使用 Mvc 绑定下拉列表以在列表中搜索
- azure - Azure Ad authentication by passing username and password to get the jwt token
- python - 如何遍历mongodb集合中的所有文档,一次一个文档?
- swing - 带有崩溃 TextField 的 Swing/JavaFx 混合应用程序
- tensorflow - Tensorflow 服务模型失败并出现错误:“您必须为占位符张量提供一个值”
- android - Android Studio:无法在 GridLayout 上添加视图。android/view/View$OnUnhandledKeyEventListener