泛型<T> <E> <K,V> 里面的 T E K V 分别是什么类型? 这样写有什么好处?目前,我知道 <String> <Student> 等 这样写的好处。
解决方案 »
- 一个关于Hibernate执行SQL的问题
- Ext 2.2.1版本的 FieldSet组件的checkboxToggle问题
- 使用cvs错误
- 求应用了struts+spring+hibernate的比较标准的系统
- Collection 的方法请高手解决!!!!
- 求解,软件工程大三学生 水平要到什么程度才能找到好的实习
- J2SE,J2ME,J2EE,JMS,EJB都是什么的问题。
- 高分200求教行家:MBean问题!!!
- 为什么在weblogic配置连接池老出现错误提示啊?
- JSP如何解决权限的问题?
- struts2 防止重复提交的token 标签使用问题
- hibernate : Not Supported for DML Operation
v:value
就是所谓键值对
这是由Map的数据结构所决定的
这里String就相当于T或M或A或。。一般来说你不是自己创建泛型的类,都不需要自己写这些东东
别人写的代码,自定义类这样写的
public class DBTransFlow<T>
{
...
}T 好像就是个Object ,不知道这样写有什么好处
通过hibernate的orm映射,
所以实际使用的时候,实际是个hbm对应的entity。比如这样一段BaseHibernateDAO里面的 public ID save(T entity) {
logger.debug("saving Entity instance");
try
{
logger.debug("save successful");
return (ID)getHibernateTemplate().save(entity);
}
catch (RuntimeException re)
{
logger.error("save failed", re);
throw re;
}
}
K V 1楼说了.
实际基类里面看你随便定义了。
不是自己使用的不需要关心,这个是OO。
自己定义的 比如List<User> list = 自然不能缩写
.....
}
//这个e可以是任何的java对象
//在调用的时候,可以不用做什么处理,在观察类方法说明时,它会自动将参数类型转化为你传的参数
//还有?类型,?表示任何类型
List<?> list=...
List<? extends Object>
//还有pk
public class BaseDao<E,PK extends Serializable>{
//这里的pk一般理解为主键,常用在数据库操作上面
public E getById(PK pk){
//.....
}
}
//用的话就这样用
BaseDao<JavaBean,java.lang.Integer> bd = new BaseDao<JavaBean,java.lang.Intger>();
//关于T,我个人直接把它理解为type,类的type
//如
public static <T extends java.util.Date> T s2d(String s,Class<T> type){
}
s2d("20001010",java.sql.Date.class);
private T1 t1;
private T2 t2;
private T3 t3;
public User(){}
public User(T1 t1,T2 t2,T3 t3){
this.t1=t1;
this.t2=t2;
this.t3=t3;
}
public void main(String[] args){
User u1=new User(1,"aa",23);
User u2=new User("aa",new Date(),12);
}
}
为什么不直接写成这样:
class User2{
private Object t1;
private Object t2;
private Object t3;
public User2(){}
public User2(Object t1,Object t2,Object t3){
this.t1=t1;
this.t2=t2;
this.t3=t3;
}
public void main(String[] args){
User u1=new User(1,"aa",23);
User u2=new User("aa",new Date(),12);
}
}
还请各位高手指点。