簡體   English   中英

在 Kotlin 中使用 setter 實現 Java getter 接口

[英]Implement Java getter interface with setter in Kotlin

我有一個java接口:

    public interface TestInterface {
           String getName();
    }

我有一個 kotlin 課程:

class TestImpl(private var name: String = "name"): TestInterface {
    override fun getName(): String = name
}

但是如果我也想要name字段的setter方法,

class TestImpl(private var name: String = "name"): TestInterface {
    override fun getName(): String = name
    // I don't want to write a setter like this
    fun setName(n: String) {
        this.name = n
    }
}

我還能有什么更好的方法? 謝謝。

你可以用

class TestImpl(@get:JvmName("getName_") var name: String = "name"): TestInterface {
    override fun getName(): String = name
}

然后你從 Kotlin 以x.name / x.name = ...訪問它,從 Java 中以x.getName() / x.setName(...)訪問它。 不幸的是,Java 中也有getName_() ,但您不必使用它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM