回调一般在java应用中,于window编程比较多,本人在这方面经验比较少,对回调的应用经验几乎是空白,因此对JAVA的回调技术没什么了解。
后来也就是在使用hibernate的时候,应用了spring包装的hibnerte 的API类HibernateDaoSupport的时候,在分页查询,应用了Criteria的动态查询,HibernateTemplate支持得不是很好,就用了回调的技术
java 代码
- public PaginationSupport findPageByCriteria(
- final DetachedCriteria detachedCriteria, final int page,
- final int pageSize) {
- return (PaginationSupport) getHibernateTemplate().execute(
- new HibernateCallback() {
- public Object doInHibernate(Session session)
- throws HibernateException {
- Criteria criteria = detachedCriteria
- .getExecutableCriteria(session);
- int totalCount = ((Integer) criteria.setProjection(
- Projections.rowCount()).uniqueResult())
- .intValue();
- criteria.setProjection(null);
- List items = criteria.setFirstResult(page)
- .setMaxResults(pageSize).list();
- PaginationSupport ps = new PaginationSupport(items,
- totalCount, pageSize, page);
- return ps;
- }
- }, true);
- }
后来看到有关回调技术的说法:
当通常大家说的回调函数一般就是按照别人的定好的接口规范写的,等待别人调用的函数,在C语言中,回调函数通常通过函数指针来传递;在Java中,通常就是编写另外一个类或类库的人规定一个接口,然后你来实现这个接口,然后把这个实现类的一个对象作为参数传给别人的程序,别人的程序必要时就会通过那个接口来调用你编写的函数。
最近在研究jive论坛,在搜索的时候它使用了Ietorator,其中就是使用了回调的技术,忽然眼前一亮,至此,才看到回调的妙用。
看片断,构造函数:
java 代码
- public DatabaseObjectIterator(int type, long [] elements,
- final Object extraObject)
- {
- this.elements = elements;
-
-
-
- switch (type) {
-
- case JiveGlobals.FORUM:
-
- this.objectFactory = new DatabaseObjectFactory() {
- ForumFactory factory = (ForumFactory)extraObject;
-
- public Object loadObject(long id) {
- try {
- Forum forum = factory.getForum(id);
- return forum;
- }
- catch (ForumNotFoundException mnfe) { }
- catch (UnauthorizedException ue) { }
- return null;
- }
- };
- break;
分享到:
相关推荐
其实回调函数简单通俗点就是当有a和b两个函数,当a作为参数传给b,并在b中执行,这时a就是一个回调(callback)函数,如果a是一个匿名函数,则为匿名回调函数那下面们来通过一个实例来具体解释下Javascript回调函数怎么...
这在实现回调函数、排序算法等场景中非常有用。 #### 示例分析 下面通过一个具体的例子来进一步理解指针作为函数参数的应用。 ```c #include // 函数原型声明 void swap(int *x, int *y); int main() { int a...
在本文中,我们将深入探讨二级指针在编程中的妙用,特别是在处理链表数据结构时的高效性。林纳斯·托瓦兹(Linus Torvalds)在他的讨论中强调了理解指针和二级指针的重要性,他认为这是核心底层编程的基础。他指出,...
1. **卖出信号**: 当分时图中的RSI1(即14周期的RSI)数值达到75-80时,这表明短期内价格上涨过快,可能面临回调风险,是卖出的好时机。这种情况下,市场可能正处在超买区域,投资者应考虑减仓或平仓。 2. **买入...
这种方式虽然通用,但当需要在多个Activity或Fragment中处理登录回调时,代码会变得冗余且难以维护。为了解决这个问题,我们可以利用Fragment的生命周期特性,创建一个专门处理登录回调的Fragment。 具体实现如下:...
同时,深入理解原型链、闭包、异步编程(如回调函数、Promise和async/await)等高级特性也是必不可少的。JavaScript还提供了DOM(文档对象模型)操作,通过它可以改变HTML元素,实现动态更新网页内容。 jQuery,是...
- **玻璃球**:装饰用的小型玻璃球也可以回收利用。 ### 电热锯的应用 电热锯是一种利用电流通过金属丝发热原理工作的切割工具。它能够将泡沫材料锯切得非常平整,其原因在于: - **加热丝长度长**:较长的加热丝...
而我们平时做开发所真正用到的,确没有多少,我们只需要一些基本的Ajax回调技术,当然封装成组件是为了方便使用,如果能灵活调用方法那更妙,告诉你,这些在ajaxjune.net里面都已实现,包括table数据回调。
4. **更新数据并同步视图**:在后台线程中完成数据刷新,然后回调主线程更新ListView的数据集并调用Adapter的notifyDataSetChanged()方法。 二、到底部加载更多(Infinite Scrolling) 加载更多功能则允许用户滚动...
URL 是要请求的资源地址,回调函数则会在请求成功时被调用,返回的数据会作为参数传递给这个函数。例如: ```javascript $.get('Scripts/data.txt', function(content) { // content 将包含 data.txt 文件的文本...
为了解决这类问题,我们可以利用异步编程的策略,即通过延迟执行和回调来避免阻塞主线程。 对于向服务器发送请求,通常我们会使用AJAX(异步JavaScript和XML)来实现异步通信,等待请求响应后执行回调函数。而对于...
- 确保理解当前`this`的指向,特别是在回调函数、事件处理函数以及对象方法中,其指向可能与直觉不同。 - 在回调函数中,如果希望`this`指向特定对象,可以通过`call()`、`apply()`或`bind()`方法来指定。 - 在严格...
这时,我们可以在$timeout的回调函数中调用$scope.$apply来确保视图得到更新。 总结来说,AngularJS的脏检查机制是其MVVM模式的核心。它通过监视数据变化来实现数据和视图的同步更新,极大地简化了Web应用的状态...
下面将详细分析JavaScript定时器的实现原理、妙用以及使用时需注意的事项。 一、储备知识 在JavaScript中,常用的两种定时器分别是setTimeout和setInterval。setTimeout函数用于设置一个定时器,这个定时器会在...
前言 和map类似,Array的filter也接收一个函数。但是和map不同的是, filter把传入的函数依次作用于每个元素,然后根据返回值是 true 还是false决定保留还是丢弃该元素。 实例介绍 例如,在一个Array中,删掉偶数,...
这个方法的关键在于它接受一个回调函数,这个函数有两个主要参数:`accumulator`(累加器)和`currentValue`(当前值)。在每次迭代中,回调函数会更新累加器的值,并返回新的累加器值,这个值会在下一次迭代中作为...