繁体   English   中英

如何在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->中生成上述的getter和setters时,它适用于所有可用字段,并且我可以添加多个字段。

但是我想在Scala中实现的目标是相同的,因此它不需要字段,而是为第一个字段添加了getter和setter方法。

用谷歌搜索,但可以在Intellij中找到解决方案。

您不应该在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)

如评论所述,在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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM