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 = _
}

 

相关文章:

  • 2021-06-05
  • 2021-04-23
  • 2021-07-06
  • 2021-06-10
  • 2022-12-23
  • 2022-12-23
  • 2021-11-27
猜你喜欢
  • 2021-08-18
  • 2022-01-08
  • 2021-04-13
  • 2022-12-23
相关资源
相似解决方案