Создать массив дженериков

public abstract class CarFactory <T extends Car> {
T[] allCars;

CarFactory(int arraySize){
    this.allCars =  new T[arraySize];
}

abstract T getCar(String model, int yearOfIssue, String color, double price, String registrationNumber);

}

IDE ругается на строку (на тип Т) this.allCars = new T[arraySize];

Подскажите, как исправить ситуацию.


Ответы (1 шт):

Автор решения: Aziz Umarov

Думаю как то так

public abstract class CarFactory <T extends Car> {
 List<T> allCars;

 CarFactory(int arraySize){
    this.allCars =  new ArrayList<T>(arraySize);
 }

 abstract T getCar(String model, int yearOfIssue, String color, double price, String registrationNumber);
}

В основе ArrayList лежит array. Можете посмотреть исходники ArrayList и посмотреть реализацию данного класса. Может и найдете подсказки для вашей исходной задачи.

→ Ссылка