2009-11-16 2 views
0

Могу ли я сделать это на Java?Могут ли объекты Java Array создаваться динамически во время выполнения?

В Runtime:

int length = некоторые арифметики, загружающие длина

то я использую длину, чтобы сделать это:

byte [] b = new byte[length]; 

Будет ли это выбросить исключение во время выполнения? Если да, то какой?

+3

Вы пробовали? Если да, то каковы были результаты? – BalusC

+0

Он не показывает ошибку времени компиляции, но я получаю сообщение об ошибке во время выполнения, и я не знаю, является ли это источником? –

+0

Вам нужно изучить ошибку, а не код. – BalusC

ответ

1

Нет, что не будет бросать исключение во время выполнения, если конечно длина не является отрицательным.

+1

Или большой номер honkin :-) – paxdiablo

+2

Размеры и индексы массива являются целыми целыми числами, поэтому все до и вплоть до Integer.MAX_VALUE в порядке. Если памяти недостаточно, технически вы не получите исключения, вы получите сообщение об ошибке (OutOfMemoryError). :) – cletus

0

Да, он может быть создан во время выполнения.

Но вы должны попробовать и посмотреть :)

+0

Почему бы не использовать ArrayList? – DarthVader

+0

Не могу, я ограниченная платформа Java, у которой нет класса ArrayList. –

+0

Почему вы говорите, что вы должны попробовать и посмотреть? Нет ли конкретной документации по этому вопросу? –

0

Я думаю, что вы забываете основную концепцию, поскольку объекты создаются во время компиляции, а память выделяется во время выполнения.