Java编译器错误:查找表超过65535限制

Jas*_*son 1 java lookup-tables

由于基于此定义的极大查找表,我遇到了这个编译器错误:

//92 X 182 array
private static final double[][] lookUpTable = new double[][]
{
    { numbers....}
};
Run Code Online (Sandbox Code Playgroud)

据我所知,将其分解是一种解决方案,但要准确地分割这个阵列是非常困难的.我也相信我可以把它移到一个文件,但我不知道我是否可以用一种方式来帮助我格式化,而且我不想每秒都读取文件.还有其他建议可以帮助我解决这个问题吗?

das*_*ght 5

将表转换为文件,将文件作为资源嵌入,在静态初始化块中读取一次,然后将其存储在lookUpTable数组中.它不会与通过聚合初始化的数组区分开来,除非没有65535限制.存储在静态变量中将帮助您避免"每秒读取".

就格式而言,您可以将矩阵的每一行放在资源文件的单独行中.阅读和维护这个文件很简单,因为你的数字周围没有其他标记.

以下是解释如何从资源中读取文件的答案链接.