首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

java泛型如何理解,下面的代码又是咋回事

2012-04-15 
java泛型怎么理解,下面的代码又是怎么回事,在线等java文件中1public static void print(List? extendsNum

java泛型怎么理解,下面的代码又是怎么回事,在线等
java文件中
1
  public static void print(List<? extends Number> l){
  for(Number num:l){
  out.println(num);
  }
  }
现问,这段代码用了泛型吗,用在哪,for(Number num:l) 这句又是什么意思呀

2 问:java为什么 要用泛型,泛型怎么用,

thanks

[解决办法]
for是迭代l l是一个list的 他是泛型的? extends Number是说里面的元素是number的子类但不能使用add方法
[解决办法]
没有泛型以前,写一个循环输出 Class A 实例的函数
 public static void print(List<A> l){
for(A num:l){
out.println(num);
}

后来又写了个Class B 继承自 A。这个时候你要循环输出他们的共有内容,泛型就派上用场了
 public static void print(List<? extends A> l){
for(A num:l){
out.println(num);
}

将来再有类继承自A,就再也不重写这个函数了。

当然这是最简单的用法,泛型的世界精彩的很
[解决办法]
List<? extends Number> l 这个就是泛型。
[解决办法]
<? extends Number> 这里面就是一个泛型,所有Number类以及子类都能作为其参数
for(Number num:l) 遍历l这个list 这是jdk1.6新增的内容 
使用泛型方法时,不必指明参数类型,编译器会自己找出具体的类型。泛型方法除了定义不同,调用就像普通方法一样。 这也是jdk1.6新增的内容
[解决办法]
(List<? extends Number>

? 代表一个不确定的类型
但是这个类型是 extends Number的 也就是必须是 Number的子类
[解决办法]
泛型真有用

热点排行