且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

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

更新时间:2022-08-13 08:22:47

一、通配符

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

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