为什么可以使用 Java 中的泛型将 Object 转换为 Integer?
发布时间:2022-06-01 01:35:52 290
相关标签: # php
我找到了一种通过泛型类型将浮点数添加到整数数组的方法。我很好奇为什么 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 如何存储浮点数?谢谢!
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报