Компилятор ругается(checked), когда я создаю объект, для которого я указываю дженерик
Пишу свой ArrayList.
Имеется класс Test (для тестирования) и класс ArrayListMy. Раньше они оба находились в папке src. Сейчас же я их перенёс в разные папки: src(Test, Package(ArrayListMy)). Теперь компилятор просто в ярости и отказывается принимать запись вида:
ArraylistMy<Integer> a = new ArrayListMy<>();
Вот мои классы:
import Package.ArrayListMy;
public class Test {
public static void main(String[] args) {
/////// ЗДЕСЬ ПРОБЛЕМА ///////
ArrayListMy<Integer> arrayListMy = new ArrayListMy<Integer>();
///////////////////////////////////////////
arrayListMy.add(0);
arrayListMy.add(1);
arrayListMy.add(2);
arrayListMy.add(3);
arrayListMy.add(2);
arrayListMy.add(2);
arrayListMy.add(2);
arrayListMy.add(2);
System.out.println(arrayListMy.get(1));
}
}
package Package;
import java.util.Arrays;
public class ArrayListMy <T>{
private Object[] array;
private int size;
private int index = 0;
public ArrayListMy() {
array = new Object[0];
size = 0;
}
public boolean add(T o){
if(array.length == size){
if(array.length == 0){
array = new Object[1];
} else{
increaseArray();
}
}
array[index] = o;
size++;
index++;
return true;
}
public T get(int i){
return find(i);
}
public boolean remove(int i){
size--;
index--;
}
public int size(){
return size;
}
@SuppressWarnings("unchecked")
private T find(int i){
if (i >= 0 && i <= array.length)
{
return (T) array[i];
}else
throw new ArrayIndexOutOfBoundsException();
}
private void increaseArray(){
Object[] temp;
temp = Arrays.copyOf(array, array.length + 1 + array.length / 2);
array = temp;
}
}
P.S. Класс ArrayListMy не дописан.
ВЕРСИЯ JDK - 8
Ответы (1 шт):
Автор решения: Вадим Мурзаков
→ Ссылка
Ваш код должен работать
Единственные рекомендации которые могу дать, попробуйте рестартанут IDEA
ps, так же именуйте пакеты с маленькой буквы (JNC)
pps, метод ArrayListMy#remove() должен возвращать return, который у вас пропущен
public boolean remove(int i){
size--;
index--;
}