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

Ben*_*ani 6 scala case-class scala-2.11

我创建了带有 100 个字段 +- 的 scala case 类,当我尝试构建项目(使用 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)
Run Code Online (Sandbox Code Playgroud)

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

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

baz*_*nac 4

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

compileScala {
    options.forkOptions.jvmArgs += "-Xss4m"
}
Run Code Online (Sandbox Code Playgroud)

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