Scala可變物件

Ayning發表於2017-02-08

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

 

相關文章