Scala可变对象

Java提供JavaBean作为数据对象的封装, 而对于Scala来说也提供了同样的支持.

class Apple {
  var weight: Float = _
  var color: String = _
}

Scala无需向JavaBean那样显示的声明 getter和setter , 只需将变量声明为var就可以了, getter方法 weight , setter方法为 weight_= ; 同时, 在JavaBean中的变量可以不用初始化, 但是在Scala中需要初始化为_, _的具体值由变量的类型决定, 对于数值型的为0, Boolean的为false, 引用类型为null.

public class JavaApple {
    private int age;  // right
}

class ScalaApple {
  var age: Int // wrong
  var age: Int = _ // right, 0
}

关于@BeanProperty

然而许多已有的Java库依然需要使用JavaBean的getter和setter方法, 而不是ScalaBean的setter和getter, 这种情况下会报错. 为了解决这个问题, Scala引入的额@BeanProperty注解, 在变量上标注该注解, Scala编译器会自动生成getter个setter方法.

class ScalaApple {
  @BeanProperty
  var age: Int = _
}
原文地址:https://www.cnblogs.com/ayning/p/6377853.html