Scala-具有100个字段的案例类(StackOverflowError)

时间:2019-01-14 21:48:37

标签: scala case-class scala-2.11

我创建了具有100个字段的Scala案例类+-, 当我尝试使用gradle构建项目时,出现错误:

Cause: java.lang.StackOverflowError
    at scala.tools.nsc.transform.Erasure$Eraser.typed1(Erasure.scala:698)
    at scala.tools.nsc.typechecker.Typers$Typer.runTyper$1(Typers.scala:5396)
    at scala.tools.nsc.typechecker.Typers$Typer.scala$tools$nsc$typechecker$Typers$Typer$$typedInternal(Typers.scala:5423)

我使用的是scala 2.11,发现过去有22个字段的限制。但它是固定的。

那么为什么构建失败? (我试图增加-Xss20m,但没有帮助)

1 个答案:

答案 0 :(得分:1)

在我的情况下,有效的是在build.gradle脚本中设置如下所示的-Xss:

compileScala {
    options.forkOptions.jvmArgs += "-Xss4m"
}

然后我可以使用scala 2.11.12编译具有100个以上字段的case类的应用程序。所有其他设置(在IntelliJ Idea菜单中)均无效。