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

标签 java scala compiler-errors

有一个带有构建器的对象(从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/

相关文章:

scala - 如何创建内容是表达式结果的有限迭代器?

scala - 可迭代两个元素?

compiler-errors - 前向声明在MQL中无法按预期工作

compiler-errors - 是什么原因导致此VHDL代码中的 “Data type not implemented for operator ' COMPARE'”?

java.lang.IllegalArgumentException : The given string value: { "In last 7 days" : 19 } cannot be transformed to Json object

java - 提取 .jpg 元数据/metadata-extractor/exif/java

Scala 向下还是 for 循环递减?

linux - 编译 SOSlib C 库时出错

java - 正则表达式来获取一切

java - 如何使用java读取php echo语句