当前位置: 代码迷 >> Android >> java泛型如何理解,下面的代码又是咋回事
  详细解决方案

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

热度:52   发布时间:2016-05-01 21:42:32.0
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的子类
------解决方案--------------------
泛型真有用
  相关解决方案