代码之家  ›  专栏  ›  技术社区  ›  Jan B. HDR

在Kotlin中如何修改VAL成员

  •  3
  • Jan B. HDR  · 技术社区  · 6 年前

    在Java中,我能够修改 final 构造函数中的成员。请参阅以下示例

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

    科特林有办法修改吗 val 施工期间的构件,在这种情况下 trim() 在参数值分配给字段之前。

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

    3 回复  |  直到 6 年前
        1
  •  4
  •   Todd    6 年前

    您可以向未标记的构造函数声明参数 val var . 这会对构造函数产生局部影响,并在类构造完成后丢失。拿着这个论点,把它设为你想要的任何东西。

    class Scratch(str: String) {
        private val strMember = str.trim()
    }
    
        2
  •  2
  •   Demigod    6 年前

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

    class Scratch(strParam:String) {
        private val strMember = strParam.trim()
    }
    
        3
  •  0
  •   Abner Escócio    6 年前

    试试你的 strParam final property 如下

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

    因此,您可以在您的 Scratch class