读书人

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

发布时间: 2012-04-15 18:39:21 作者: rapoo

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的子类
[解决办法]
泛型真有用

读书人网 >Android

热点推荐