在Java中我通常作爲該領域具有相同名稱叫二傳的說法在Scala中,我可以使用相同的名稱,參數和類字段
public void setA(int a){
this.a = a;
}
的原因是,後來IDE將顯示a
作爲參數名稱,因此它有更好的記錄。
我該如何在Scala中做同樣的事情?
在Java中我通常作爲該領域具有相同名稱叫二傳的說法在Scala中,我可以使用相同的名稱,參數和類字段
public void setA(int a){
this.a = a;
}
的原因是,後來IDE將顯示a
作爲參數名稱,因此它有更好的記錄。
我該如何在Scala中做同樣的事情?
你不需要。當你創建一個Scala類:
class A(val a: Int)
你得到一個'免費'的訪問器。如果你將參數聲明爲var
,那麼你也會得到一個setter。所以,要回答你的問題:參數已經是類字段。
val myA = new A(42)
myA.a // 42
class B(var b: Int)
val myB = new B(42)
myB.b // 42
myB.b = 43
myB.b // 43
在Java Beans的getXXX
/setXXX
慣例並不適用於斯卡拉(有時試圖斯卡拉使用Java庫時的問題)。
Java有四個命名空間(iirc),Scala有兩個。你不能這樣做,但看到另一個答案,爲什麼這可能不成問題。
那麼如何覆蓋getters和setter呢? – gotch4
http://dustinmartin.net/getters-and-setters-in-scala/ – vptheron
所以基本上沒有辦法,你必須使用命名約定...... mmmmh – gotch4