gpt4 book ai didi

java - Scala : compilation error due to huge number of methods in chain

转载 作者:行者123 更新时间:2023-12-02 10:47:27 24 4
gpt4 key购买 nike

有一个带有构建器的对象(从avro模式生成的java对象)。该对象具有平面结构,包含约200个场。

代码如下:

Object.newBuilder()
.setField1()
.setField2()
...
.setField200()

Idea中的scala编译器可以毫无问题地进行编译。当我尝试运行Maven构建-失败并出现编译问题:StackOverflow
 [ERROR] error: java.lang.StackOverflowError
[INFO] at scala.tools.nsc.transform.Erasure$Eraser.typed1(Erasure.scala:666)
[INFO] at scala.tools.nsc.typechecker.Typers$Typer.runTyper$1(Typers.scala:5303)
[INFO] at scala.tools.nsc.typechecker.Typers$Typer.scala$tools$nsc$typechecker$Typers$Typer$$typedInternal(Typers.scala:5330)
[INFO] at scala.tools.nsc.typechecker.Typers$Typer.body$2(Typers.scala:5277)
[INFO] at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5281)
[INFO] at scala.tools.nsc.typechecker.Typers$Typer.typedQualifier(Typers.scala:5379)
[INFO] at scala.tools.nsc.typechecker.Typers$Typer.typedQualifier(Typers.scala:5387)
[INFO] at scala.tools.nsc.transform.Erasure$Eraser.adaptMember(Erasure.scala:612)
[INFO] at scala.tools.nsc.transform.Erasure$Eraser.typed1(Erasure.scala:666)
[INFO] at scala.tools.nsc.typechecker.Typers$Typer.runTyper$1(Typers.scala:5303)

Scala版本:2.11
Scala Maven插件:3.3.1

作为一种解决方法,我将设置方法分为几组(每个链中有100个 setter )
val builder = Object.newBuilder()
builder.setField1()
.setField2()
...
.setField100()
builder.setField101()
...
.setField200()

那设法在我的本地机器上编译,但是在Jenkins服务器上编译失败。在将 setter 分成较小的组(每组30个 setter )之后,代码也在Jenkins服务器上编译。

是否有任何参数可以在Scala编译器中配置该行为?

最佳答案

我曾经遇到过同样的问题,我通过将堆栈大小从默认的1MB增加到10MB来解决了这个问题。希望对您有所帮助!

关于java - Scala : compilation error due to huge number of methods in chain,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61673759/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com