簡體   English   中英

如何在Kotlin施工期間修改val成員

[英]How can I modify val members during construction in Kotlin

在Java中,我能夠修改構造函數中的final成員。 請參閱以下示例

class Scratch {

  private final String strMember;

  public Scratch(String strParam) {
    this.strMember = strParam.trim();
  }        
}

在Kotlin中是否有一種方法可以在構造期間修改val成員,在這種情況下,在將參數值分配給字段之前trim()它們。

如果沒有,建議的解決方法是什么,而不會產生太多的開銷?

您可以聲明未用valvar標記的構造函數的參數。 這具有構造函數的局部效果,並且在類構造完成后丟失。 拿出那個參數並將其設置為你想要的任何東西。

class Scratch(str: String) {
    private val strMember = str.trim()
}

像這樣:構造函數參數在屬性初始化期間可用。

class Scratch(strParam:String) {
    private val strMember = strParam.trim()
}

試試你的strParam final property如下

class Scratch(strParam : String) {
    val strParam : String = strParam 
        get() = field.trim()
}

因此,您可以在Scratch class內部和外部使用它們

暫無
暫無

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

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