我无法在scala中找到如何为case类实现副本。
我能以某种方式查看吗?
我虽然Intellij可以指出我实施,但它不想跳,我不明白为什么:/
答案 0 :(得分:4)
您可以使用scalac -print ClassName.scala
检查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();
}