List list = getHibernateTemplate().executeFind(new HibernateCallback()
{
//实现HibernateCallback接口必须实现的方法
public Object doInHibernate(Session session)
throws HibernateException, SQLException
{
//执行Hibernate分页查询
List result = session.createQuery(hql)
.setFirstResult(offset)
.setMaxResults(pageSize)
.list();
return result;
}
});初学,请教一下:
这段代码,在调用executeFind方法时,在参数中定义一个方法?
这是什么意思?为什么要这样做?谢谢哈,俺初学

解决方案 »

  1.   

    这个不是定义方法,而是实现或者覆盖接口,类中的方法
    一般情况下,接口需要创建对象都需要写一个类,然后去实现接口,这里使用是的是匿名内部类
    接口名 obj=new 接口名(){
      实现接口里的方法
    };Java有这样的语法,楼主自己参考一下
      

  2.   

    再说具体点吧.我也是新手哈,//实现HibernateCallback接口必须实现的方法,new HibernateCallback()你这是创建了一个对象,而接口是不能直接创建对象的.所以必须通过实现接口的类来创建对象, 所以喽,你后面就实现了这个接口的方法.也就是匿名内部类. 所以你就可以创建对象了. 如果你要问我匿名内部类是干啥的,我建议你还是看看书里怎么写的,因为我也是理解不深.但看见这么写我差不多知道.呵呵
    List list = getHibernateTemplate().executeFind 这句什么意思不明白,等待高人回答.
      

  3.   


    没记错的话是 hibernate 模板的一个执行查询的方法,一般返回一个封装结果集的 List