Posted on 2011-06-05 16:51
xcp 阅读(297)
评论(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: 联系我