如何在 Kotlin 的构建过程中修改 val 成员

Mat*_*att 5 constructor final kotlin

在 Java 中,我可以修改final构造函数中的成员。请看下面的例子

class Scratch {

  private final String strMember;

  public Scratch(String strParam) {
    this.strMember = strParam.trim();
  }        
}
Run Code Online (Sandbox Code Playgroud)

Kotlin 有没有办法在val构造过程中修改成员,在这种情况下,trim()在将参数值分配给字段之前修改成员。

如果没有,在不产生太多开销的情况下,推荐的解决方法是什么?

Tod*_*odd 6

您可以向构造函数声明一个未用val或标记的参数var。这对构造函数来说是局部的,一旦类构造完成就会丢失。接受该参数并将其设置为您想要的任何内容。

class Scratch(str: String) {
    private val strMember = str.trim()
}
Run Code Online (Sandbox Code Playgroud)