liangyun 发表于 2021-8-3 09:49

如何证明Java的泛型是假的

本帖最后由 liangyun 于 2021-8-3 09:50 编辑

网上搜索这个标题大部分都是说用反射来证明, 我来提供另一种思路给大家:

如果一个整形集合输出出了字符串元素, 则表示此泛型为伪泛型(附导包证明List类不是我自己写的)

```java
package kim.nzxy;

import java.util.ArrayList;
import java.util.List;

public class Main {

    public static void main(String[] args) {
      List<Integer> list;
      list = initList();
      System.out.println("list = " + list); // list =
    }

    private static <T> List<T> initList() {
      List<T> list = new ArrayList<>();
      list.add((T) "hello, world");
      return list;
    }
}
```

jyan 发表于 2021-8-3 11:05

类型擦除。

zwx117105 发表于 2021-8-3 11:48

虽然java中的泛型是“假”的,会有泛型擦除的操作,但是不可否则,泛型的引入对java语言影响还是挺大的,让它上升了一大步

liangyun 发表于 2021-8-6 09:15

zwx117105 发表于 2021-8-3 11:48
虽然java中的泛型是“假”的,会有泛型擦除的操作,但是不可否则,泛型的引入对java语言影响还是挺大的,让 ...

哈哈是的, 我只是想提供另一种从网上没见过的我认为更简单的思路证明java拥有类型擦除

三木猿 发表于 2021-8-6 14:26

长见识了,这都行
页: [1]
查看完整版本: 如何证明Java的泛型是假的