java 泛型的几点备忘
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                java 泛型的几点备忘
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                1、在java虛擬機中是沒有泛型的,所有泛型類的參數都會被擦除,如下:
public void test(List<String> list, int num){}public void test(List<Integer> list, int num){}這兩個方法對于java編譯器來說是一樣的,因此無法編譯通過。
2、下面兩種寫法都是OK的,但推薦用后者:
public <I extends Fruit> void test(List<I> list){}public void test(List<? extends Fruit> list){}3、關于<? extends >和 <? extends >
//<? extends T> 表示類型的上界,表示參數化類型的可能是T 或是 T的子類//<? super T> 表示類型下界,表示參數化類型是此類型的超類型(父類型) List<? extends Fruit> list = new ArrayList<Apple>();//flist.add(new Fruit()); 編譯錯誤list.add(null);Apple apple = (Apple) list.get(0);Fruit item = (Fruit) list.get(0);List<? super Fruit> list1 = new ArrayList<Fruit>();list1.add(new Fruit());list1.add(new Apple());list1.add(null);Fruit item1 = (Fruit) list1.get(0);//Apple apple = (Apple)list1.get(0);編譯錯誤?
轉載于:https://www.cnblogs.com/Fredric-2013/p/4577345.html
總結
以上是生活随笔為你收集整理的java 泛型的几点备忘的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 第一节:程序集加载
- 下一篇: Linux启动提示Kernel pani
