在 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() 它们。

如果不是,建议的解决方法是什么而不产生太多开销?

像这样:构造函数参数在属性初始化时可用。

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

您可以为未标记 valvar 的构造函数声明一个参数。这对构造函数具有局部作用,一旦 class 构造完成就会丢失。采用该参数并将其设置为您想要的任何值。

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

试试你的strParam final property如下

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

因此,您可以在 Scratch class

内外使用它们