J2EE社區

          茍有恒,何必三更起五更眠;
          最無益,只怕一日曝十日寒.
          posts - 241, comments - 318, trackbacks - 0, articles - 16

          導航

          留言簿(30)

          隨筆分類(219)

          友情鏈接

          搜索

          •  

          積分與排名

          • 積分 - 1166746
          • 排名 - 25

          最新隨筆

          最新評論

          閱讀排行榜

          六、java1.5以上新特性-范型

          Posted on 2011-06-05 16:51 xcp 閱讀(310) 評論(0)  編輯  收藏 所屬分類: review
          1。由來
              ByteFoo->private Byte foo;
              StringFoo->private String foo;
              BooleanFoo->private boolean foo;
              DateFoo->private Date foo;
              XcpFoo->private xcp foo;

          2。1.4以前的解決方案
              ObjectFoo->private Object foo;  //容易出現ClassCastException,類型轉換錯誤

          3。1.5新特性的解決方案-范型
              public Class MyFoo<T>{
                  private T foo;
              }

          4。擴展
              public Class MyFoo<T>{
                  private T[] foos; //等等
              }

          5.再度擴展-限制范型使用類型
              public Class MyFoo<T extends List>{ //不管是繼承父類與實現接口都用extends
                  private T foo;
              }


          6.再度擴展-類型通配聲明-->使用時的通用方法
               public Class MyFoo<T extends List>{
                  private T foo;
                  public static void main(String args[]){
                      MyFoo<ArrayList> foo1 = new MyFoo<ArrayList>();
                      MyFoo<LinkedList> foo2 = new MyFoo<LinkedList>();
                      
                      //現在我想聲明一個變量,即可以放ArrayList,也可以放LinkedList
                      MyFoo<? extends List> foo3 =null;  //list的子類
                      foo3 = new MyFoo<ArrayList>();
                      foo3 = new MyFoo<LinkedList();

                      
                      MyFoo<? super List> foo4 =null; //list的父類
                      foo4 = new MyFoo<Object>();   //這就只能為Object了,因為List的超父類有Object
                  
                      MyFoo<?>  foo5 = null;    //任意類型== ? extends Object
                      foo5 = new MyFoo<Integer>();
                      foo5 = new MyFoo<String>();
                }
              }
              



          名稱: ?4C.ESL | .↗Evon
          口號: 遇到新問題?先要尋找一個方案乄而不是創造一個方案こ
          mail: 聯系我


          主站蜘蛛池模板: 玉屏| 长治县| 麦盖提县| 涪陵区| 滦平县| 青海省| 永康市| 钟祥市| 尼勒克县| 农安县| 牡丹江市| 六枝特区| 景泰县| 桐庐县| 梁山县| 佳木斯市| 丰都县| 应城市| 静乐县| 黔东| 芦山县| 四会市| 北宁市| 元谋县| 台山市| 正镶白旗| 昔阳县| 利川市| 灵寿县| 河源市| 历史| 舒城县| 安岳县| 扬州市| 高尔夫| 绥中县| 大连市| 成武县| 南岸区| 布拖县| 石门县|