GroovyからScalaへの移行、およびこれまでのScalaの愛用。私がGroovyについて深く忘れていることの1つは、オブジェクトのプロパティ/フィールドを定義し、他のクラスのゲッターを使わずに参照できるという事実です。 Javaで例えばgetterを使用しないScalaフィールドへのアクセス
、:
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!") {
...
}
}
Scalaはこのように振る舞いません。あなたはこのために解決しなければなりません:
class Fizz(buzz : String) {
...
}
def someMethod(fizz : Fizz) : Unit = {
if(fizz.getBuzz.eq("gnarly!")) {
...
}
}
(この1つのユースケースのために)私のScalaのコード「Groovier」を作るために、私はScalaのクラスのいくつかの内部の「ヘルパー」メソッドを追加することに決めました:
今ことができますclass Fizz(buzz : String) {
def buzz() : String = { this.buzz }
}
私はそうのようにそれらにアクセスするには:
def someMethod(fizz : Fizz) : Unit = {
if(fizz.buzz.eq("gnarly!")) {
...
}
}
私の質問:んScalaは私が上記の目的の動作を達成することを可能にする任意の他のメカニズム/デバイスを持っているwithou私のいわゆる「ヘルパーメソッド」を書く必要はありませんか?
Scalaのケースクラスについてお読みください –
なぜこれがダウンリストされたのか分かりません。これは話題になっています。詐欺師ではありません(私はScalaにとっては初めてのことであり、これまでにこのサイトで質問されたケースクラスやその他の構造物については知らないかもしれません) SSCCE](http://sscce.org)。 – smeeb