Java泛型使用误区:类型擦除示例

原创 迷南。 2024-09-19 18:00 154阅读 0赞

在Java中,泛型是一种可以让我们创建具有多种数据类型的集合的方法。然而,使用泛型时,可能会遇到类型擦除的问题。下面是一个具体的例子:

  1. // 泛型集合
  2. public class GenericList<T> {
  3. private List<T> list;
  4. // 构造函数
  5. public GenericList() {
  6. list = new ArrayList<>();
  7. }
  8. // 通过泛型添加元素
  9. public void add(T item) {
  10. list.add(item);
  11. }
  12. // 获取元素列表(类型擦除)
  13. public List<?> getItems() {
  14. return list;
  15. }
  16. }
  17. // 使用示例
  18. public class Main {
  19. public static void main(String[] args) {
  20. // 创建泛型集合,添加元素
  21. GenericList<Integer> integerList = new GenericList<>();
  22. integerList.add(1);
  23. integerList.add(2);
  24. // 获取元素列表(类型擦除)
  25. List<?> itemList = integerList.getItems();
  26. // 打印元素列表,可以看到原始的Integer类型被擦除了
  27. for (Object item : itemList) {
  28. System.out.println(item);
  29. }
  30. }
  31. }

在上述例子中,我们创建了一个泛型集合GenericList<Integer>,然后添加了一些整数。当我们通过getItems()方法获取元素列表时,可以看到原始的Integer类型已经被Java虚拟机(JVM)自动擦除了,这就是类型擦除的现象。

文章版权声明:注明蒲公英云原创文章,转载或复制请以超链接形式并注明出处。

发表评论

表情:
评论列表 (有 0 条评论,154人围观)

还没有评论,来说两句吧...

相关阅读