请教java中的一种定义

specialfaint 2010-12-10 08:04:27
在一本书的hibernate章节中,看到如下两个定义,有点不太明白,请教一下高手们:

public class BaseDAO<T>
{

}
在以上的定义中多了<T>,这个是什么啊?是怎么意思?


在下面的另外一个定义中,多了<Email>,这是什么意思啊?

private List<Email> emails = new ArrayList<Email>();
...全文
176 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ousyuryu 2010-12-10
  • 打赏
  • 举报
回复
不好意思啊,我写错了
new BaseDAO<T>(String)->new BaseDAO<String>();
ousyuryu 2010-12-10
  • 打赏
  • 举报
回复
java Generics

从j2se5.0开始引进的,<T>代表一个类型,就是说你new一个类的时候可以指定它的类型。

List就是一个活例子。

j2se5.0之前,List里面存储的数据都是Object这就造成了类型丢失。当你调用List里的数据时
不知道它的类型,加上泛型<T>之后,你可以在new的时候声明类里的类型。
private List<Email> emails = new ArrayList<Email>();
就表示List的成员都是Email类的对象
public class BaseDAO<T>
{

}

如果写成下面的这样

public class BaseDAO<T>
{
public T getTestThisObject(T obj) {
return obj;
}
}

当然这是一个SB写法但是可以说明问题
如果你声明一个 dao
BaseDAO<String> dao = new BaseDAO<T>(String);
的话你就把T定义成String型了
那么 getTestThisObject所接受的参数和返回值都是String
如果你指定Integer那就是Integer
如果你指定是Email那就是Email

不知道讲到这你明白没

xtawgipl 2010-12-10
  • 打赏
  • 举报
回复
泛型类的定义。。。
xiluhua 2010-12-10
  • 打赏
  • 举报
回复
泛型,自己百度一下,就知道他是什么东西了

81,095

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧