我有一个警告:
Type safety: Unchecked cast from List < capture#10-of ?> to List < Object>
有来电,stock.getListDVD().getListDVD()
是ArrayList<DVD>
jTablePanier=new JTableUt(stock.getListDVD().getListDVD(), DVD.class);
所以我知道这个类是DVD.class
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) {
如何在不使用
的情况下解决此警告@SuppressWarning("unchecked")
非常感谢你的帮助。它节省了我很多时间。 解决方案是
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);
}
}
答案 0 :(得分:7)
将List<?> list
更改为List<? extends Object>
:
public JTableUt(List<?> list, Class<?> classGen)
重要的是要注意
List <Object>
和List<?>
不是 相同的。您可以将Object或Object的任何子类型插入到List<Object>
。但您只能将 null 插入List<?>
。