您可以使用 检查 scala 案例类输出scalac -print ClassName.scala
,因为它copy
实际上是编译器生成的方法。
这是一个给定的示例:
case class Test(s: String, i: Int)
Run Code Online (Sandbox Code Playgroud)
这是滤除噪声后的输出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();
}
Run Code Online (Sandbox Code Playgroud)