Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Scala:由于链中有大量方法而导致编译错误_Java_Scala_Compiler Errors - Fatal编程技术网

Java Scala:由于链中有大量方法而导致编译错误

Java Scala:由于链中有大量方法而导致编译错误,java,scala,compiler-errors,Java,Scala,Compiler Errors,有一个带有生成器的对象(从avro模式生成的java对象)。该对象具有平面结构,包含大约200个字段 代码如下所示: Object.newBuilder() .setField1() .setField2() ... .setField200() Idea中的scala编译器可以毫无问题地编译它。当我尝试运行maven build时,它失败了,出现了编译问题:StackOverflow [ERROR] error: java.lang.StackOverflowError

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

代码如下所示:

Object.newBuilder()
  .setField1()
  .setField2()
  ...
  .setField200()
Idea中的scala编译器可以毫无问题地编译它。当我尝试运行maven build时,它失败了,出现了编译问题: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

作为一种解决方法,我将set方法拆分为多个组(每个链中有100个setter)

它成功地在我的本地机器上编译,但在Jenkins服务器上编译失败。在我将setter拆分为更小的组(每组30个setter)之后,Jenkins服务器上编译的代码也会被删除


在scala编译器中是否有配置该行为的参数

我曾经遇到过同样的问题,我通过将堆栈大小从默认的1MB增加到10MB来解决它。希望能有帮助

我曾经遇到过同样的问题,我通过将堆栈大小从默认的1MB增加到10MB来解决它。希望能有帮助

也许这可以作为一个解决办法:?@ernest_k,谢谢,我有-Xss4m,尝试了10次,没有帮助。也许这可以作为一个解决办法:?@ernest_k,谢谢,我有-Xss4m,尝试了10次,没有帮助,谢谢。我以前用过-Xss4m,用10m试过。反正失败了。由于这个参数对所有env(我的本地机器和Jenkins服务器)都是相同的,所以我认为问题出在另一个地方谢谢。我以前用过-Xss4m,用10m试过。反正失败了。由于这个参数对所有env(我的本地机器和Jenkins服务器)都是相同的,所以我认为问题出在另一个地方
val builder = Object.newBuilder()
builder.setField1()
  .setField2()
  ...
  .setField100()
builder.setField101()  
  ...
  .setField200()