黑马程序员技术交流社区
标题:
泛型类
[打印本页]
作者:
杜佳瑞
时间:
2012-8-4 15:08
标题:
泛型类
class Tool
{
private Object obj;
public void setObjec(Object obj)
{
this.obj=obj;
}
public void getObjec()
{
return obj;
}
}
视频中讲到泛型类这块我有点疑问:我认为泛型类可以理解为一模板类,无论什么类型的对象都可以套用,而Object类可以看做是顶级父类,能否作为这个模板类的参数呢?上述程序是否也可以看做是一个泛型类呢?视频中毕老师重新写了一个QQ类型的泛型类,有没有必要呢?
作者:
张雪磊
时间:
2012-8-4 16:04
不行的,就以老师的那个qq类型的泛型类为例
class Utils<QQ>
{
private QQ q;
public void setObject(QQ q)
{
this.q = q;
}
public QQ getObject()
{
return q;
}
}
定义泛型后,当我们需要用这个Utils类,即创建Utils的对象时,就得给qq指定类型,这样这个类的类型就固定了,比如Utils<String> ex =new Utils<String>();创建这么个对象。那上面那个类相当于变成这个样子:
class Utils
{
private
String
q;
public void setObject(
String
q)
{
this.q = q;
}
public
String
getObject()
{
return q;
}
}
而如果要用Object的话相当于把传入的对象向上提上成Object了,也就是你得到的是一个Object对象,那以后要用就需要在向下转型,这种转换是要求开发者对实际参数类型可以预知的情况下进行的。用泛型就避免这样的麻烦。
作者:
杜佳瑞
时间:
2012-8-4 22:14
张雪磊 发表于 2012-8-4 16:04
不行的,就以老师的那个qq类型的泛型类为例
class Utils
{
谢谢 解决了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2