As far as I understand a List<?>
is definds as a list of some specific , yet unknown type . So whatever is the parameter type of this List
, it should be extending Object
because in Java you can not have any type that doesn't extend Object
. So why the following code doesn't get compiled ? How is it violating the the invariant of the listObj
List<?> listObj = returnSomeList();
listObj.add(new Object()); //Why does this not work ?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…