Размер строки инициализации в Java ⇐ JAVA

Программисты JAVA общаются здесь
Anonymous
Размер строки инициализации в Java

Сообщение Anonymous »

Очевидно, в javac существует ограничение на размер строки инициализации. Может ли кто-нибудь помочь мне определить максимальный лимит?

Спасибо

редактировать:

Мы создаем строку инициализации, которая будет выглядеть примерно так: "{1,2,3,4,5,6,7,8.. ....}", но в идеале с 10 000 чисел. Когда мы делаем это для 1000, это работает, 10 000 выдает ошибку, сообщающую, что код слишком велик для оператора try.

Для этого мы используем построитель строк и перебираем массив, добавляя значения. Видимо, это ограничение в javac. Нам сказали, что мы можем перестроить массив в вызываемом методе, если передадим его небольшими частями. Однако это невозможно, поскольку мы не можем контролировать вызываемый пользовательский метод.

Я хотел бы опубликовать код, но не могу, потому что это проект для университета. . Я не ищу решения кода, а просто помогаю понять, в чем заключается реальная проблема.

Нарушителем является цикл for

Код: Выделить всё

    Object o = new Object()
{
public String toString()
{
StringBuilder s = new StringBuilder();
int length = MainInterfaceProcessor.this.valuesFromData.length;
Object[] arrayToProcess = MainInterfaceProcessor.this.valuesFromData;

if(length == 0)
{
//throw exception to do
}
else if(length == 1)
{
s.append("{" + Integer.toString((Integer)arrayToProcess[0])+"}");
}
else
{
s.append("{" + Integer.toString((Integer)arrayToProcess[0])+","); //opening statement
for(int i = 1; i < length; i++)
{
if(i == (length - 1))
{
//last element in the array so dont add comma at the end
s.append(getArrayItemAsString(arrayToProcess, i)+"}");
break;
}
//append each array value at position i, followed
//by a comma to seperate the values
s.append(getArrayItemAsString(arrayToProcess, i)+ ",");
}
}
return s.toString();
}
};
try
{
Object result = method.invoke(obj, new Object[] { o });
}

Подробнее здесь: https://stackoverflow.com/questions/832 ... ng-in-java

Вернуться в «JAVA»