一、通配符
?标识的范型化对象,可以标识任意类型的范型化 ,可以将任意类型化的值赋值给 ?通配符所规范化的类。 可以将任意类型的范型化类型 赋值给?通配符范型化的类型 。
Collection<Integer> c=new ArrayList() ;
c.add(1) ;
c.add(5); //jdk1.5的自动装箱子=功能
showCollection(c) ;
public static void showCollection(Collection <?> col) //加上了?通配符类型化的集合 可以传递不同类型化的集合 ,但是只能调用与类型化无关的方法 与类型化有关的方法不可以调用
{
System.out.println(col.size());
for(Object obj:col)
{
System.out.println(obj);
}
}
二、扩展通配符
Collection <? extends java.lang.String> //表示集合元素是Java.lang.String 或者他的派生类
Collection <? super java.lang.String> //表示集合元素是Java.lang.String 或者他的父类
Collection<? super String>cc=new ArrayList<Object>() ; //可以将包含String或者String的基类的集合赋值给 通配符类型化的集合 ,其他类型也可以
Collection<? extends Object> c=new ArrayList<Integer>() ; //Object 以及继承自他的 类都能赋值