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>...))()

これが自動生成されたコードであることを本当に願っています。そうでない場合は、コードをリファクタリングして読みやすく保守しやすくするためのより良い方法がたくさんあります。そのうちの 1 つは、マップを作成するコードを独自のメソッドに配置し、applyメソッド内のデータをパラメーターとして渡すことです。

于 2012-11-05T17:00:34.113 に答える