JAVA泛型学习

上一篇 / 下一篇  2013-05-13 22:03:51 / 个人分类:JAVA学习

---泛型
在集合框架中,将集合中要存储的数据类型作为参数传递到<>中,如下
ArrayList<String> a1 = new ArrayList<String>();
好处:1、将错误在编译时抛出
     2、避免强制转换
泛型类
当类中要操作的引用数据类型不确定时,定义泛型来完成扩展
泛型类定义的泛型,在整个类中有效,如果被方法使用,
那么泛型类的对象明确要操作的具体类型后,所有要操作的类型就已经被固定了
class Demo<Q>
{
 private Q q;
 public void set(Q q)
  {
  this.q=q;
  }
 public Q get()
  {
  return q;
  }
}
泛型方法定义,定义在修饰符后面,返回值前面
静态方法不可以访问定义的泛型类上的泛型
class Demo<T>
{
  public <T>void show(T t)--类型随着对象走的
  {
   System.out.println("show"+t);
  }
  public <T>void print(Q q)---不受对象影响
  {
   System.out.println("show"+q);
  }
  public static <S>void met<S s>
  {
   System.out.println("met"+s);
   }
}

泛型定义在接口上
interface Inter<T>
{
 void show(T t);
}

class InterIm implements Inter<String>
{
 public void show(String t)
  {
  System.out.println("s");
  }
}
 class Inter<T> implements  Inter<T>
 {
   public void show(T t)
  {
  System.out.println("s");
  }
 }
泛型类型不确定时,使用?替代类型不明确
泛型限定 <? extends A>向上限定,接受A类型和其子类
        <? super A>向下限定,可以接受A类型或者A的父类型
class Demo
{
 public static void Print(ArrayList<?> A)
 {
 Iterator<?> it=al.iterator();
  while (it.hasNext())
  {
   Systme.out.println(it.next()); 
   }
 }

  public static <T> void Print(ArrayList<T> A)
 {
 Iterator<T> it=al.iterator();
  while (it.hasNext())
  {
   Systme.out.println(it.next()); 
  }
 }
}



TAG:

 

评分:0

我来说两句

日历

« 2024-04-27  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 10041
  • 日志数: 20
  • 建立时间: 2013-03-24
  • 更新时间: 2014-03-22

RSS订阅

Open Toolbar