在Java中,我可以在构造函数中修改final
个成员。请参见以下示例
class Scratch {
private final String strMember;
public Scratch(String strParam) {
this.strMember = strParam.trim();
}
}
在Kotlin中,有没有一种方法可以在构造过程中修改val
个成员,在这种情况下,可以在将参数值分配给字段之前将它们修改为trim()
个成员。
如果没有,建议的解决方法是什么,而又不会产生太多开销?
答案 0 :(得分:4)
您可以向构造函数声明一个未标记为val
或var
的参数。这样的效果是对于构造函数而言是局部的,并且在类构造完成后会丢失。接受该参数并将其设置为您想要的任何值。
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
的内部和外部使用它们