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的子类
------解决方案--------------------
泛型真有用