我找到了一种通过泛型类型向整数数组添加浮点的方法.我很好奇为什么Java不能在运行时错误中捕捉到这一点?我试着在文档中查找有关这方面的任何信息,但我没有任何运气.
例如,假设我有两个ArrayList,一个包含整数,另一个包含浮点,如下所示:
ArrayList<Integer> listInt = new ArrayList<>();
ArrayList<Float> listFlt = new ArrayList<>();
listInt.add(6);
listInt.add(71);
listFlt.add(4.92f);
listFlt.add(20.5f);
使用泛型,我可以通过以下方法将浮动从listFlt复制到listInt:
public static <T extends Number, S extends Number> void copy(ArrayList<T> src, ArrayList<S> dest) {
for (int i = 0; i < src.size(); i++) {
Object x = src.get(i);
dest.set(i, (S)x);
}
}
通过以下方式调用:
ClassName.<Float, Integer>copy(listFlt, listInt);
现在,当我打印listInt时,它显示:
4.92
20.5
当涉及泛型时,如何将对象强制转换为整数?listInt如何存储浮动?谢谢