Как создать массив универсального типа?

137
07 августа 2019, 09:20

Вот код:

public class Arraylist<Type> {
    private Type array[];
    public int getLength() {
        if(array==null) return 0;
        return array.length;
    }
    public void add(Type a) {
        Type array2[] = new Type[getLength()+1];//Нельзя создать массив универсального типа
        array2 = array;
        array2[getLength()] = a;
        array = array2;
        array2 = null;
    }
    public void remove(int i) {
        Type[] array2 = new Type[getLength()-1]; //Такая же ошибка
        for(int a=-1;a<i;a++) array2[a]=array[a];
        for(int a=i;a<getLength()-1;a++) array2[a]=array[a+1];
        array=array2;
        array2=null;
    }
    public Type get(int i) {
        return array[i];
    }
    public Type[] get() {
        return array;
    }
    public String get(Arraylist<Type> obj) {
        String a = "";
        for(int i=-1;i<obj.getLength();i++) a+=String.valueOf(obj.get(i))+(i==obj.getLength()?"\n":"\n ");
        return a;
    }
    public void swap(int i,int j) {
        Type swap=array[i];
        array[i]=array[j];
        array[j]=swap;
        swap=null;
    }
}

Что делать?

Answer 1

Вы не можете получить инстанс дженерика напрямую. Загляните в реализацию базового ArrayList, там есть ответ на ваш вопрос. Там, где нужно работать с элементами вашего списка напрямую - обращайтесь в ним, как к экземплярам класса Object. Вот так реализован метод add в ArrayList:

public boolean add(E e) {
    ensureCapacityInternal(size + 1);  // Increments modCount!!
    elementData[size++] = e;
    return true;
}
READ ALSO
RecyclerView отображает данные через раз

RecyclerView отображает данные через раз

После обновления версии библиотек в buildgradle RecyclerView на api lvl 24+ отображает данные через раз, но на api lvl <24 всё работает стабильно

102
JavaFX приложение не запускается

JavaFX приложение не запускается

Проблема состоит в следующем, мой jar файл запускается в товарища на ноуте, а у меня нетВерсия jdk у нас одинаковая

107
Не работают аспекты

Не работают аспекты

Есть главный класс, который содержит конфигурацию бинов

101
Задача с собеседования Java

Задача с собеседования Java

Есть вот такое задание:

98