从Groovy迁移到Scala以及到目前为止爱Scala。我对Groovy深感遗憾的事情之一是,我可以在对象上定义属性/字段,然后仅仅引用它们而不用其他类的getter。在没有获取者的情况下访问Scala字段
例如,在Java:
public class Fizz {
private String buzz;
public Fizz(String buzz) {
super();
setBuzz(buzz);
}
// Getters and setters for buzz
}
但在Groovy:
class Fizz {
String buzz
}
然后,我可以从不同的类引用buzz
像这样:
void someMethod(Fizz fizz) {
if(fizz.buzz == "gnarly!") {
...
}
}
但是似乎斯卡拉不这样做,你必须解决这个问题:
class Fizz(buzz : String) {
...
}
def someMethod(fizz : Fizz) : Unit = {
if(fizz.getBuzz.eq("gnarly!")) {
...
}
}
为了使我的Scala代码“更巧妙”(这一个用例)我在里面加入一些我的Scala类的“帮手”的方法解决:
class Fizz(buzz : String) {
def buzz() : String = { this.buzz }
}
现在允许我访问他们像这样:
def someMethod(fizz : Fizz) : Unit = {
if(fizz.buzz.eq("gnarly!")) {
...
}
}
我的问题:斯卡拉是否有任何其他机制/设备,让我来完成上述所需的行为withou不得不写我所谓的“帮手方法”?
请阅读斯卡拉案例类 –
不知道为什么这是downvoted。这是关于主题,不是一个骗局(鉴于我显然是新来的Scala,可能不知道事情类案例或其他构造已经在此网站上查询过),显示研究,是一个[ SSCCE](http://sscce.org)。 – smeeb