返回

为什么可以使用 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 如何存储浮点数?谢谢!

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(1)
按点赞数排序
用户头像