Java i18n 太多行

Java i18n too much lines

我有一个 Java 程序并且我正在使用 i18n


public class ListNames extends ListResourceBundle implements ListNamesInterface {

    @Override
    protected Object[][] getContents() {
        return new Object[][] {
               {"ALPHA", "Alpha"},
               [...
           }
}

但是 Eclipse 告诉我的是: The code of method getContents() is exceeding the 65535 bytes limit.

我明白方法太长了,但是不知道怎么拆分。

Object[][] 的行数是 100.000 行。

你有想法吗?

方法的大小限制为 65535 字节,但您可以定义任意数量的方法,只要您需要加入一个大数组即可。显然,您可以在此处使用 ArrayList / addAll / toArray 代替 System.arraycopy 来构建更长的数组:

protected Object[][] getContents() {
    Object[][] contents1 = getContents1();
    Object[][] contents2 = getContents2();
    // You will need to repeat above many times to make 100,000 rows...

    // Then join up the arrays:
    Object[][] merged = new Object[contents1.length+contents2.length][]; // add more
    System.arraycopy(contents1, 0,merged, 0, contents1.length);
    System.arraycopy(contents2, 0,merged, contents1.length, contents2.length);
    // etc

    return merged;
}

话虽如此,当 属性 个资源包文件可供您使用时,以上是实现此目的的糟糕方法。

我不记得使用过任何 JDK 或 OS 组合,其中 属性 捆绑包无法有效工作,因此您可能没有研究过更简单的替代解决方案。