如何在 Intellij 中为所有 scala 领域生成 getter 和 setter
How to generate getters and setters for all field of scala in Intellij
我有以下代码
class TestData {
private var name : String = _
private var age : Int = _
}
当我尝试在 java class(alt + insert)-> generate-> then It ak for all the available fields 我能够添加多个字段。
但我想在 Scala 中实现同样的事情,它不要求字段,而是为第一个字段添加 getter 和 setter。
Google 搜索 aot 但可以在 Intellij 中找到解决方案。
你不应该在 Scala 中使用 var
s。尽可能保持一切不变。
也就是说,如果您 真的 想要一个 class可变值。案例 classes 会在幕后为您生成 getter 和 setter。
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)
正如评论所说,强烈不建议在 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 而不是具有可变变量的 classes。这些选项中的任何一个都将是一种更灵活的方式:
class TestData (val name: String, val age: Int)
case class TestData (name: String, age: Int)
我有以下代码
class TestData {
private var name : String = _
private var age : Int = _
}
当我尝试在 java class(alt + insert)-> generate-> then It ak for all the available fields 我能够添加多个字段。
但我想在 Scala 中实现同样的事情,它不要求字段,而是为第一个字段添加 getter 和 setter。
Google 搜索 aot 但可以在 Intellij 中找到解决方案。
你不应该在 Scala 中使用 var
s。尽可能保持一切不变。
也就是说,如果您 真的 想要一个 class可变值。案例 classes 会在幕后为您生成 getter 和 setter。
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)
正如评论所说,强烈不建议在 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 而不是具有可变变量的 classes。这些选项中的任何一个都将是一种更灵活的方式:
class TestData (val name: String, val age: Int)
case class TestData (name: String, age: Int)