/ / scalaケースクラスコピーの実装-scala、クラス、ケース

スカラ・ケース・クラス・コピーの実装 - スカラー、クラス、ケース

scalaのケースクラスにコピーがどのように実装されているかわかりません。

何とか確認できますか?

私はIntellijが実装を指示することはできましたが、ジャンプしたくないので、理由がわかりません:/

回答:

回答№1の場合は3

を使用してscalaケースクラスの出力を検査できます。 scalac -print ClassName.scala、として copy 実際には、コンパイラによって生成されたメソッドです。

これが与えられた例です:

case class Test(s: String, i: Int)

これは、ノイズを除去した後の出力です copy

case class Test extends Object with Product with Serializable {
private[this] val s: String = _;
def s(): String = Test.this.s;

private[this] val i: Int = _;
def i(): Int = Test.this.i;

def copy(s: String, i: Int): common.Test = new common.Test(s, i);
def copy$default$1(): String = Test.this.s();
def copy$default$2(): Int = Test.this.i();
}