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 组合,其中 属性 捆绑包无法有效工作,因此您可能没有研究过更简单的替代解决方案。
我有一个 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 组合,其中 属性 捆绑包无法有效工作,因此您可能没有研究过更简单的替代解决方案。