我有一个长度超过64k JVM限制的方法。看起来没有什么简单的方法可以绕过这个问题,因此我可能不得不重构我的代码。我是Scala noob,我需要一些建议:
def apply = {
...
val container = Map(...<Some Really Long Input>...)
val anotherContainer = Map(...<Some Really Long Input>...)
...
}
如何知道其内容取决于 apply 方法中的某些数据,我如何提取上述变量的内容?
答案 0 :(得分:2)
你可以滥用闭包来从方法中获取一些代码:
val container = (() => Map(...<Some Really Long Input>...))()
我真的希望这是自动生成的代码。如果不是,那么有很多更好的方法可以重构代码并使其更具可读性和可维护性。其中之一就是将创建地图的代码放入自己的方法中,并将apply
方法中的数据作为参数传递。