1

我有一个长度超过 64k JVM 限制的方法。看起来没有简单的方法可以绕过这个问题,因此我可能不得不重构我的代码。我是 Scala 菜鸟,我需要一些建议:

def apply = {
...
val container = Map(...<Some Really Long Input>...)
val anotherContainer = Map(...<Some Really Long Input>...)
...
}

如何提取上述变量的内容,知道它们的内容取决于apply方法中的一些数据?

4

1 回答 1

2

您可以滥用闭包从方法中获取一些代码:

val container = (() => Map(...<Some Really Long Input>...))()

我真的希望这是自动生成的代码。如果不是这样,有很多更好的方法可以重构代码并使其更具可读性和可维护性。其中之一是将创建地图的代码放入它自己的方法中,并将apply方法内的数据作为参数传递。

于 2012-11-05T17:00:34.113 回答