如何在Kotlin中修改val成员

时间:2018-08-02 12:51:42

标签: constructor kotlin final

在Java中,我可以在构造函数中修改final个成员。请参见以下示例

class Scratch {

  private final String strMember;

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

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

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

3 个答案:

答案 0 :(得分:4)

您可以向构造函数声明一个未标记为valvar的参数。这样的效果是对于构造函数而言是局部的,并且在类构造完成后会丢失。接受该参数并将其设置为您想要的任何值。

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

答案 1 :(得分:2)

就像这样:在属性初始化期间可以使用构造函数参数。

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

答案 2 :(得分:0)

按照以下步骤尝试strParam final property

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

因此,您可以在Scratch class的内部和外部使用它们