protected T[] array;
public Data(T x, T y) {
array = (T[]) new Object[2];
array[0] = x;
array[1] = y;
}
public T[] get() {
return array;
}
}
Попробуйте создать Data и передать туда List. Данный код скомпилируется, - даже не сомневайтесь. Вопрос только в том, что вы будете делать с методом get() - вы не сможете вытащить ничего через этот метод! Вы будете постоянно получать исключение об инвалидном касте.
Меня можно назвать некропостером, но Вы просто неправильно готовите код :)
ОтветитьУдалитьimport java.util.*;
class Data {
protected T[] array;
public Data(T x, T y) {
array = (T[]) new Object[2];
array[0] = x;
array[1] = y;
}
public T[] get() {
return array;
}
public static void main(String[] args) {
List l1 = new ArrayList();
l1.add("hello"); l1.add("world");
Data d = new Data(l1, l1);
System.out.println(d.get());
System.out.println(d.get()[0]);
System.out.println( ( (List) (d.get()[0]) ).get(0) );
}
}
Скорее всего get() у Вас не сработал потому, что Вы не в том месте кастовали объект к List'у