一聚教程网:一个值得你收藏的教程网站

热门教程

浅谈java中定义泛型类和定义泛型方法的写法

时间:2022-06-29 01:37:31 编辑:袖梨 来源:一聚教程网

1、方法中的泛型

 代码如下 复制代码

publicstatic T backSerializable(Class clazz , String path ,String fileName){

  

 FileInputStream fis =null;

 ObjectInputStream ois =null;

 Object obj =null;

  

 try{

   

  fis =newFileInputStream(path + fileName);

  ois =newObjectInputStream(fis);

  obj = ois.readObject();

   

 }catch(FileNotFoundException e) {

  // TODO Auto-generated catch block

  e.printStackTrace();

 }catch(ClassNotFoundException e) {

  // TODO Auto-generated catch block

  e.printStackTrace();

 }catch(IOException e) {

  // TODO Auto-generated catch block

  e.printStackTrace();

 }finally{

   

  try{

  if( fis!=null) fis.close();

  if( ois!=null) ois.close();

  }catch(IOException e) {

  // TODO Auto-generated catch block

  e.printStackTrace();

  }

   

   

 }

  

  

  

 return(T)obj;

 }

2、定义泛型类

 代码如下 复制代码

publicclassPageHibernateCallbackimplementsHibernateCallback>{

  

 privateString hql;

 privateObject[] params;

 privateintstartIndex;

 privateintpageSize;

  

 

 publicPageHibernateCallback(String hql, Object[] params,

  intstartIndex,intpageSize) {

 super();

 this.hql = hql;

 this.params = params;

 this.startIndex = startIndex;

 this.pageSize = pageSize;

 }

 

 

 

 publicList doInHibernate(Session session)throwsHibernateException,

  SQLException {

 //1 执行hql语句

 Query query = session.createQuery(hql);

 //2 实际参数

 if(params !=null){

  for(inti =0; i < params.length ; i ++){

  query.setParameter(i, params[i]);

  }

 }

 //3 分页

 query.setFirstResult(startIndex);

 query.setMaxResults(pageSize);

  

 returnquery.list();

 }

 

}

热门栏目