Подскажите почему вылетает NullPointerException вместо ArrayIndexOutOfBoundsException в чем ошибся?
Условие такое: Создайте класс DynamicArray, который хранит в себе массив, и имеет методы для добавления void add(T el), void remove(int index) удаления и извлечения T get(int index) из него элементов, при переполнении текущего массива, должен создаваться новый, большего размера.
Для возможности работы с различными классами DynamicArray должен быть дженериком. Для решения задачи можно воспользоваться методами из класса java.util.Arrays. Импорт этого класса уже объявлен в тестирующей системе. Добавлять его явно не нужно
Требования:
- должен быть класс public static class DynamicArray
- класс DynamicArray должен иметь методы публичные void add(T el), void remove(int index) и T get(int index)
- В случае подбора некорректного индекса ожидается, что метод get выбросит ArrayIndexOutOfBoundsException
- класс DynamicArray должен иметь публичный конструктор по умолчанию
- работа методов должна соответствовать условию
public static class DynamicArray { private int size = 0;
Object[] array = new Object[10];
public void add(T el) {
if (size == array.length) {
array = Arrays.copyOf(array, array.length * 2);
}
array[size] = el;
size++;
}
public void remove(int index) {
System.arraycopy(array, index + 1, array, index, array.length - 1 - index);
}
public T get(int index) {
try {
for (int i = 0; i <= array.length; i++) {
array[i] = (T) Arrays.copyOf(array, 10);
}
} catch (ArrayIndexOutOfBoundsException e) {
throw new NullPointerException();
}
return (T) array[index];
}
public int getLength() {
return array.length;
}
}