Kotlinで唯一のゲッターを持つ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
}

これを行うには良い方法はありますか?

shazin:

契約は持っていることですgetCode()し、getMessage()唯一の方法。それは何を返すと、クラスを実装までです。この場合、クリーンは以下の通りです:

class ErrorInfoImpl(
  private val code: String,
  private val message: String
) : ErrorInfo {
    override fun getCode(): String = code
    override fun getMessage(): String = message
}

おすすめ

転載: http://10.200.1.11:23101/article/api/json?id=477281&siteId=1