我有下面的代码
class TestData {
private var name : String = _
private var age : Int = _
}
当我尝试在java类(alt + insert)-> generate->中生成上述getter和setters时,对于所有可用字段都可以使用ak,我可以为多个字段添加内容。
但是我想在Scala中实现同样的目的,它不需要字段,而是为第一个字段添加了getter和setter。
Googled aot,但可以在Intellij中找到解决方案。
答案 0 :(得分:0)
您不应在Scala中使用var
。保持一切不变。
话虽这么说,如果您真的想要一个具有可变值的类,则可以始终使用案例类而不是普通类。案例类会在后台为您生成获取器和设置器。
scala> case class Person(var name: String, var age: Int)
defined class Person
scala> val p1 = Person("billy", 12)
p1: Person = Person(billy,12)
scala> println(p1)
Person(billy,12)
scala> p1.age = 45
p1.age: Int = 45
scala> println(p1)
Person(billy,45)
答案 1 :(得分:0)
正如评论所说,在Scala中强烈建议不要使用可变状态,如果您仍然希望这样做,可以执行以下操作:
class TestData (var name: String, var age: Int)
您可以在其中创建一个对象,并将其值获取为object.attribute
,并将该值设置为object.attribute = desiredValue
scala> val t = new TestData("edward", 12)
t: TestData = TestData@40ce2a1f
scala> t.name
res2: String = edward
scala> t.name = "Josh"
t.name: String = Josh
scala> t.name
res3: String = Josh
您应该使用具有可变值的类代替具有可变变量的类。这些选项中的任何一个都将是更有效的选择:
class TestData (val name: String, val age: Int)
case class TestData (name: String, age: Int)