黑马程序员技术交流社区
标题:
泛型的一点不解
[打印本页]
作者:
赵英坤
时间:
2012-3-14 16:09
标题:
泛型的一点不解
class teacher<T>{
private String name = "";
private int age = 0;
public void show(T t){
System.out.println("show:" + t);
}
public <Q> void print(Q q){
System.out.println("print:" + q);
}
}
show方法和print方法分别代表什么,有什么不一样的地方
作者:
吴璞玉
时间:
2012-3-14 17:12
两个方法的泛型类型是不同的,show方法的泛型类型和类的泛型类型一致,类的泛型类型改变show方法的也随之改变,print方法则有自己的泛型类型
作者:
张润政
时间:
2012-3-14 17:58
泛型:JDK1.5之后出现的一个新特性,用于解决安全问题,是一个安全机制。泛型类定义的泛型在这个那个类中有效。泛型类的对象明确要操作的具体类型后,所要操作的类型就已经固定了。
为了让不同方法可以操作不同类型,而且类型还不确定那么可以讲泛型定义在方法上。
这两个方法除了他们是在同一个类中,没有什么特殊的联系。这个show方法,它没有在返回值类型上加上泛型,那么我们就认为它的参数所接收的类型是T,因此它只能操作T类型的参数。类的泛型变了,它的参数接收类型也会跟着改变。
print方法中,在返回类型前加上了一个泛型Q,那么他就接收的是Q类型。
作者:
lucky_xingxing
时间:
2012-3-14 18:53
show方法里面传递的对象必须是类定义了的,只能传定义的那个 ,不能传其他的 而print方法的泛型是定义在方法上面的,也就是可以传入非类定义的那个类型
teacher<Stirng> ts = new teacher<String>();
第一个show方法只能传入String类型的参数
第二个print方法既可以传入String类型也可以传入Integer 类型(当然这个类型自己定义相传什么传什么)的参数
作者:
李爱军
时间:
2012-3-14 19:37
这是两个不同的的泛型类型
1.show方法的泛型类型和类的泛型类型一致。也就是说类的泛型类型是什么,show方法的类型也就是是什么。
2.print方法类型是由传入的参数类型而定。你的参数q传的是什么类型,那么print方法类型就是这个传入的类型了。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2