A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 骑着毛驴去赶 中级黑马   /  2014-3-16 22:07  /  833 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

一:泛型类
1.什么是泛型类?
答:例如class GenericDemo<QQ>
解释:<>中的参数可以是任意的
2:泛型的应用
当类中是用的引用数据类型不确定的时候,早起是使用Object并强转来实现的,现在定义了泛型实现功能的扩展,基本数据类型不参与
3:泛型的出现将错误有运行时期转换到了编译时期
泛型类实例:
  1. class worker
  2. {
  3.        
  4. }
  5. class Student
  6. {

  7. }
  8. class GenericDemo<QQ>
  9. {
  10.         private QQ q;
  11.         public QQ getQQ()
  12.         {
  13.                 return q;
  14.         }
  15.         public void setQQ(QQ qq)
  16.         {
  17.                 this.q =qq;
  18.         }
  19. }
  20. main:
  21. GenericDemo<Worker> gd = new GenericDemo<Worker>();
  22. gd.setQQ(new Worker());
  23. Worker w=gd.getQQ();
复制代码

二:泛型方法
1.什么是泛型方法?

答:例如
  1. class GenericMethod
  2. {
  3.         public <T> void show(T t)
  4.         {
  5.                 sysout(t);
  6.         }
  7. }
复制代码

泛型方法的定义格式:泛型在定义时<T>一定要定义在返回值的前面
2.泛型方法有什么好处?
答:泛型类定义的泛型在整个类中都有效,泛型类定义的泛型如果类型一确定,那么其里面的所有使用该类型的方法类型就统一了,
当我们并不想让所有方法的类型都统一,比如我定义了一个show()方法用来打印我传递进去的值,可是当我第一传入的是Integer类型
第二次传入的String类型的话就会爆发异常,所以此时我们就可以用泛型方法来解决这种问题
3.泛型方法的实例:
  1. class GenericMethod
  2. {
  3.         public <T> void show(T t)
  4.         {
  5.                 sysout(t);
  6.         }
  7. }
  8. main:
  9. GenericMethod gm = new GenericMethod();
  10. gm.show("abc");
  11. gm.show(123);
复制代码


三:静态的泛型方法
1.什么是静态的泛型方法?
答:例如:
public static <T> void show(T t)
{
}
2.如何使用静态泛型方法?
答:当静态的泛型方法定义在泛型类中时,静态泛型方法不可以使用类定义的泛型,否则会报异常

--未完待续--






0 个回复

您需要登录后才可以回帖 登录 | 加入黑马