デフォルトのスタックサイズ制限には大きすぎるグローバル定数ImmutableListを定義しようとしています。攻撃的なXss32M
フラグをjava
に渡す以外の方法があります。ここで巨大なグローバルなImmutableList定数を定義するエレガントな方法(スタックサイズ制限を超えて)
は、コードスニペットです:
import com.google.common.collect.ImmutableList;
import util.FixedRowDefinition;
import java.util.List;
public class FancyConstants {
public static final List<Person> student_list = new ImmutableList.Builder<Person>()
.add(new Person("Amy",12,56))
.add(new Person("Tom",26,79))
.........
.add(...).build()
/* More similar definitions; could be very long */
}
あり、上記のようなおよそ2000行である、と私はクラスが吹く理由は、各要素は、オブジェクト(非常に希薄であるが)であるということですね。
student_list
をJavaで定義して、私が現在観察しているようなエラーStackOverflow
が発生しないような方法はありますか?
ファイルから読み込みます。 – pvg
あなたはそれをクラスにハードコーディングするべきではありません。それはファイルから来るべきです。 –
@EricWang:メソッドの呼び出しを連鎖させると、各呼び出しは前の*が返された後に*発生します。コード自体はスタックオーバーフローを生成しません。ソースコードの処理中に 'StackOverflowError'が失敗するのは*コンパイラ*です。 – Holger