Posted on 2011-06-05 16:51
xcp 閱讀(306)
評論(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; //容易出現(xiàn)ClassCastException,類型轉(zhuǎn)換錯誤
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>{ //不管是繼承父類與實現(xiàn)接口都用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>();
//現(xiàn)在我想聲明一個變量,即可以放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
口號: 遇到新問題?先要尋找一個方案乄而不是創(chuàng)造一個方案こ
mail: 聯(lián)系我