关于Class entityClazz和T entity的问题

J2EE 码拜 9年前 (2015-11-15) 1654次浏览
最近在练习SSH的项目整合,但是在最基础的DAO层就遇到了不懂的问题。

public interface BaseDao<T>
{
	// 根据ID加载实体
	T get(Class<T> entityClazz , Serializable id);
	// 保存实体
	Serializable save(T entity);
	// 更新实体
	void update(T entity);
	// 删除实体
	void delete(T entity);
	// 根据ID删除实体
	void delete(Class<T> entityClazz , Serializable id);
	// 获取全部实体
	List<T> findAll(Class<T> entityClazz);
	// 获取实体总数
	long findCount(Class<T> entityClazz);
}

如上面看到的,本人不是很理解为什么有的地方用Class<T>,有的地方就用T就可以了?
说下本人现在的理解,这里的BaseDao<T>是用了泛型,然后在子类实现接口的时候把需要的类型替换T就可以了。但是里面的Class<T>和T的区别就不是很懂了。有的人说class<T>是获取T类型的一组List,是这样吗?请各位指点一下迷津

解决方案:10分
这种用法Class<T>首先它不是集合类型
它是表明了Class类所指代的具体类类型
解决方案:30分
你上面原因是getSessionFactory 这个方法需要你传入一个class ,,所以你Class 这种类型和get 没有关系。
例如下面这样的传入的class 
  
还有其他的写法
你有可以看看<? super E> and <? extends E>?

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明关于Class entityClazz和T entity的问题
喜欢 (0)
[1034331897@qq.com]
分享 (0)