Java 在Scala中,参数和类字段可以使用相同的名称吗
在Java中,我通常使用与字段相同的名称调用setter的参数Java 在Scala中,参数和类字段可以使用相同的名称吗,java,scala,Java,Scala,在Java中,我通常使用与字段相同的名称调用setter的参数 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 // 4
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 bean的
getXXX
/setXXX
约定不适用于Scala(在尝试在Scala中使用java库时,这有时是一个问题)。您不必这样做。创建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库时有时会出现问题)。java有四个名称空间(iirc),Scala有两个。您无法做到这一点,尽管您可以看到另一个答案,即为什么这可能不是问题。Java有四个名称空间(iirc),Scala有两个。您无法做到这一点,尽管您可以看到另一个答案,说明这可能不是问题。那么如何覆盖getter和setter呢?因此基本上没有办法,您必须使用命名约定。。。mmmmh@gotch4有一种方法:def age_=(value:Int):Unit=\u age=value
在这里定义setter,您可以在其中放入任何需要的代码。与其说它是一种命名约定,不如说它是一种命名约定?准备好后,请随意接受答案:)那么如何覆盖getter和setter呢?因此基本上没有办法,您必须使用命名约定。。。mmmmh@gotch4有一种方法:def age_=(value:Int):Unit=\u age=value
在这里定义setter,您可以在其中放入任何需要的代码。与其说它是一种命名约定,不如说它是一种命名约定?准备好后,请随意接受答案:)