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