вот часть урока на странице оракула:
Рассмотрим следующий пример:
List l = new ArrayList<Number>();
List<String> ls = l; // unchecked warning
l.add(0, new Integer(42)); // another unchecked warning
String s = ls.get(0); // ClassCastException is thrown
Подробно, ситуация загрязнения кучи возникает, когда объект List l, статический тип которого List<Number>
, назначен другому объекту List, ls, который имеет другой статический тип List<String>
// это из oracle учебник
мой вопрос: почему статический тип List<Number>
, а не просто List
??
позже другой вопрос будет из кода моих исследований:
public class GrafoD extends Grafo {
protected int numV, numA;
protected ListaConPI<Adyacente> elArray[];
*/** Construye un Grafo con un numero de vertices dado*
* @param numVertices: numero de Vertices del Grafo
*/
@SuppressWarnings("unchecked")
public GrafoD(int numVertices){
numV = numVertices; numA=0;
elArray = new ListaConPI[numVertices+1];
for (int i=1; i<=numV; i++) elArray= new LEGListaConPI<Adyacente>();
}
Почему в этом коде вместо elArray = new ListaConPI[numVertices+1]
мы не можем написать elArray = new ListaConPI<Adyacente>[numVertices+1]
?
Большое спасибо!