Sal*_*kci 2 java generics collections
我正在尝试制作一个只能包含Numbers的通用List.当我尝试向其添加一个Integer时,它会出现以下错误.
List中的add(T)不能应用于Java.lang.Number
public class QueryHelper<T extends Number> {
private List<T> records;
public void query(QueryTypes queryType) {
records = new ArrayList();
records.add((Number)new Integer(90));
}
}
Run Code Online (Sandbox Code Playgroud)
是什么导致了这个问题?
一个List<T>地方T extends Number可以是一个List<Number>,一个List<Integer>,一个List<Double>,等...
你不能添加Integer到List<Double>.因此编译错误.
如果您希望能够将任何Number实例添加到该列表,只需将其定义为
private List<Number> records;
Run Code Online (Sandbox Code Playgroud)
这意味着您不需要泛型类型参数T.
| 归档时间: |
|
| 查看次数: |
1749 次 |
| 最近记录: |