scala案例类复制实现

时间:2016-02-25 11:29:55

标签: scala class case

我无法在scala中找到如何为case类实现副本。

我能以某种方式查看吗?

我虽然Intellij可以指出我实施,但它不想跳,我不明白为什么:/

1 个答案:

答案 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();
}