这两天补了一下泛型,因为底层用到泛型确实很多,也确实是很方便实用。
下面我简单说说我对泛型的一个浅显的理解。
通常我们在一个集合后面加上泛型,比如List<Apple>,假定Apple是一个实体类, 那么这样写的想告诉编译器就是说当前这个List集合只允许存放Apple,如果现在放的是香蕉,橙子(假定香蕉橙子都是实体类),那么这是编译器就会报错,以此来组织有其他不明身份的实例添加到List里面,当然如果去掉<Apple>,那么这个限制就会没有了。
下面给出一个常见的泛型使用例子
public <T> T save(T entity) {
this.getCurrentSession().save(entity);
return entity;
}
这里的T分别代表什么意思呢,下面我说下自己的理解,如果不对请指正。
第一个T是定义一种类型,也就是为后面两个T做的一种定义,不然直接使用T的话编译器是不能理解的,会直接报错的。第二个T相当于函数的返回类型,也就是此处返回的类型是一个T,并且这个T跟入参的T是一样的,第三个T就是参数的类型,这样写的好处是可以接受任何类型的参数,并且又将这个类型返回了回去,而不是前面的限定了只能使Apple。。
理解有限,后面有新的见解会再补充的~~~