在Scala中,我可以为参数和类字段使用相同的名称

时间:2013-12-09 17:55:32

标签: java scala

在Java中,我通常使用与字段

相同的名称来调用setter的参数
public void setA(int a){
    this.a = a;
}

原因是稍后IDE将显示a作为参数名称,因此更好地记录。

如何在Scala中执行相同的操作?

2 个答案:

答案 0 :(得分:4)

你不必。创建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 bean的getXXX / setXXX约定不适用于Scala(在Scala中尝试使用Java库时,这有时会出现问题)。

答案 1 :(得分:1)

Java有四个命名空间(iirc),Scala有两个。你不能这样做,虽然看到另一个答案,为什么这可能不是一个问题。