Génériques Java: Conversion non cochée d'une liste à l'autre
J'ai un avertissement :
Type safety: Unchecked cast from List < capture#10-of ?> to List < Object>
, Il s'agit de l'appel, stock.getListDVD().getListDVD()
est un ArrayList<DVD>
jTablePanier=new JTableUt(stock.getListDVD().getListDVD(), DVD.class);
Donc je connais la classe c'est un DVD.classe
private ModelJTableUt model;
public JTableUt(List<?> list, Class<?> classGen)
{
model=new ModelJTableUt((List<Object>) list, classGen); // <-- This line cause the warning, i convert List<?> to List<Object>
}
public ModelJTableUt(List<Object> list, Class<?> classGen) {
Comment puis-je résoudre cet avertissement sans utiliser
@SuppressWarning("unchecked")
Merci beaucoup pour votre aide. Il me sauver de nombreuses heures. La solution est
public JTableUt(List<? extends Object> list, Class<?> classGen){
model=new ModelJTableUt(list, classGen);
}
List<Object> list;
public ModelJTableUt(List<? extends Object> list2, Class<?> classGen)
{
list = new ArrayList<Object>();
//I construct a new List of Object.
for (Object elem: list2)
{
list.add(elem);
}
}
4
Author: user2338702, 2013-05-01
1 answers
Changer List<?> list
en List<? extends Object>
dans:
public JTableUt(List<?> list, Class<?> classGen)
À Partir de Java Génériques tutoriel :
, Il est important de noter que
List <Object>
etList<?>
ne sont pas le même. Vous pouvez insérer un objet, ou tout sous-type d'objet, dans unList<Object>
. Mais vous ne pouvez insérer null enList<?>
.
7
Author: tarrsalah, 2013-05-01 13:46:32