?通配符 以及扩展通配符在范型中的应用。。。。。。。。。。。。。。。。。。

一、通配符

?标识的范型化对象,可以标识任意类型的范型化 ,可以将任意类型化的值赋值给 ?通配符所规范化的类。 可以将任意类型的范型化类型 赋值给?通配符范型化的类型 。

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以及继承自他的 类都能赋值

你可能感兴趣的:(通配符)