Java 泛型,你了解类型擦除吗?
作者:frank909 https://blog.csdn.net/briblue/article/details/76736356 泛型,一个孤独的守门者。 大家可能会有疑问,我为什么叫做泛型是一个守门者。这其实是我个人的看法而已,我的意思是说泛型没有其看起来那么深不可测,它并不神秘与神奇。泛型是 Java 中一个很小巧的概念,但同时也是一个很容易让人迷惑的知识点,它让人迷惑的地方在于它的许多表现有点违反直觉。 文章开始的地方,先给大家奉上一道经典的测试题。 List<String> l1 = new ArrayList<String>(); List<Integer> l2 = new ArrayList<Integer>(); System.out.println(l1.getClass() == l2.getClass()); 请问,上面代码最终结果输出的是什么?不了解泛型的和很熟悉泛型的同学应该能够答出来,而对泛型有所了解,但是了解不深入的同学可能会答错。 正确答案是 true。 上面的代码中涉及到了泛型,而输出的结果缘由是类型擦除。先好好说说泛型。 泛型是什么? 泛型的英文是 generics,generic 的意思是通用,而翻译成中文,泛应该意为广泛,型是类型。所以泛型就是能广泛适用的类型。 但泛型还有一种较为准确的说法就是为了参数化类型