首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

java基础温习总结4

2012-10-27 
java基础复习总结4泛型 变量类型的参数化public class GenericFooT{private T foopublic T getFoo(){re

java基础复习总结4

泛型 变量类型的参数化

public class GenericFoo<T>{private T foo;public T getFoo(){return foo;}public void setFoo(T foo){this.foo = foo;}public static void main(String[] args){GenericFoo<Boolean> foo1 = new GenericFoo<Boolean>();GenericFoo<Integer> foo2 = new GenericFoo<Integer>();foo1.setFoo(new Boolean(false));foo2.setFoo(new Integer(3));Boolean b = foo1.getFoo();Integer i = foo2.getFoo();System.out.println(b);System.out.println(i);//foo1 = foo2;GenericFoo a = new GenericFoo();a.setFoo("hello");String str = (String)a.getFoo();System.out.println(str);}}

?

public class ArrayListTest{public static void main(String[] args){List<String> list = new ArrayList<String>();list.add("a");list.add("b");list.add("c");list.add("d");for(int i = 0; i < list.size(); i++){String value = list.get(i);System.out.println(value);}for(Iterator<String> iter = list.iterator(); iter.hasNext();){String value = iter.next();System.out.println(value);}}}
在定义时候限制了传入的类别
public class GenericTest<T>{private T foo;public T getFoo(){return foo;}public void setFoo(T foo){this.foo = foo;}public static void main(String[] args){GenericTest<? extends List> ge = null;ge = new GenericTest<ArrayList>();ge = new GenericTest<LinkedList>();//ge = new GenericTest<HashMap>();GenericTest<? super List> ge2 = null;ge2 = new GenericTest<Object>();GenericTest<String> ge3 = new GenericTest<String>();ge3.setFoo("hello world");GenericTest<?> ge4 = ge3;System.out.println(ge4.getFoo());ge4.setFoo(null);System.out.println(ge4.getFoo());//ge4.setFoo("welcome");}}

?

?表示T 只能是实现list接口的某个实例

public class ListGenericFoo<T extends List>{private T[] fooArray;public T[] getFooArray(){return fooArray;}public void setFooArray(T[] fooArray){this.fooArray = fooArray;}public static void main(String[] args){ListGenericFoo<LinkedList> foo1 = new ListGenericFoo<LinkedList>();ListGenericFoo<ArrayList> foo2 = new ListGenericFoo<ArrayList>();LinkedList[] linkedList = new LinkedList[10];foo1.setFooArray(linkedList);ArrayList[] arrayList = new ArrayList[10];foo2.setFooArray(arrayList);//ListGenericFoo<HashMap> foo3 = new ListGenericFoo<HashMap>();}

?

热点排行