В Java нет способа объявить массив универсального типа T
.Например, недопустимо объявлять массив, используя new T[10]
:
public class List<T> {
T[] backing_array = new T[10]; // this line is invalid,
public T Item(int index) {
return backing_array[index]; // and therefore this line is invalid as well.
}
//etc...
Лучшее альтернативное решение, которое у нас есть, это:
public class List<T> {
Object[] backing_array = new Object[10];
public T Item(int index) {
return (T) backing_array[index]; // notice that a cast is needed here if we want the return type of this function to be T
}
//etc...
Если явного приведения типов не было вJava, было бы невозможно создать списки универсальных массивов, поскольку объявление массива универсального типа T
не допускается.