本例拿apache commons dbutils举例

回调函数:

回调是指在执行时,具体的封装处理工用由第三方的类来实现。

回调一般由两部分组成

1:调用类 - QueryRunner。实例类

2:回调规范 – ResultSetHandler。一般是一个接口。

3:回调规范定义回调方法且这个方法由调用类调用。

在实现了了这些实现类的时候,为什么就那么智能的返回我们想要到结果呢?

第一个例子:

package com.tpf.callback;

import java.util.List;
import java.util.Map;
/**
* 这个是一个动态返回类型的 回调
* <p>Title:CallbackDemo </p>
* <p>Description: </p>
* <p>Company: www.vfinance.cn </p>
* @author tianpengfei
* @date 2016年8月10日 下午1:55:52
*/
public class CallbackDemo { public static void main(String[] args) {
//使用
Runner run = new Runner();
run.query("pengfei", new RunnerHandler<List<Map<String,Object>>>() { @Override
public List<Map<String, Object>> handler(String sql) {
return "hello world";
}
});
}
} /**
* 第一步:定义调用类
*/
class Runner{
public <T>T query(String sql,RunnerHandler<T> rh){
return rh.handler(sql);
}
} /**
* 第二步:定义回调规范
* @param <T>
*/
interface RunnerHandler<T>{
T handler(String sql);
}

Java中的回调函数的更多相关文章

  1. Java中的回调函数学习

    Java中的回调函数学习 博客分类: J2SE JavaJ#  一般来说分为以下几步: 声明回调函数的统一接口interface A,包含方法callback(); 在调用类caller内将该接口设置 ...

  2. Java中的回调函数学习-深入浅出

    Java中的回调函数一般来说分为下面几步: 声明回调函数的统一接口interface A.包括方法callback(); 在调用类caller内将该接口设置为私有成员private A XXX; 在c ...

  3. Java中的回调

    又忙了一周,事情差不多解决了,终于有可以继续写我的博客了(各位看官久等了). 这次我们来谈一谈Java里的一个很有意思的东西--回调. 什么叫回调,一本正经的来讲,在计算机程序设计中,回调函数是指通过 ...

  4. 【Java入门提高篇】Day4 Java中的回调

    又忙了一周,事情差不多解决了,终于有可以继续写我的博客了(各位看官久等了). 这次我们来谈一谈Java里的一个很有意思的东西——回调. 什么叫回调,一本正经的来讲,在计算机程序设计中,回调函数是指通过 ...

  5. 理解与使用Javascript中的回调函数 -2

    在javascript中回调函数非常重要,它们几乎无处不在.像其他更加传统的编程语言都有回调函数概念,但是非常奇怪的是,完完整整谈论回调函数的在线教程比较少,倒是有一堆关于call()和apply() ...

  6. PHP中的回调函数和匿名函数

    html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,bi ...

  7. 理解和使用 JavaScript 中的回调函数

    理解和使用 JavaScript 中的回调函数 标签: 回调函数指针js 2014-11-25 01:20 11506人阅读 评论(4) 收藏 举报  分类: JavaScript(4)    目录( ...

  8. js中的回调函数的理解和使用方法

    js中的回调函数的理解和使用方法 一. 回调函数的作用 js代码会至上而下一条线执行下去,但是有时候我们需要等到一个操作结束之后再进行下一个操作,这时候就需要用到回调函数. 二. 回调函数的解释 因为 ...

  9. [转]理解与使用Javascript中的回调函数

    在Javascript中,函数是第一类对象,这意味着函数可以像对象一样按照第一类管理被使用.既然函数实际上是对象:它们能被“存储”在变量中,能作为函数参数被传递,能在函数中被创建,能从函数中返回. 因 ...

随机推荐

  1. MySQL:索引工作原理

    索引查找:通过索引键找到索引的叶子节点,再通过叶子节点的标记快速找到表中对应的行数据,再返回指定的列 索引找查是通过索引键定先位到一块局部区域,再开始扫描匹配的数据的. 为什么需要索引(Why is ...

  2. ActiveMQ集群应用

    ActiveMQ集群 ActiveMQ具有强大和灵活的集群功能,但在使用的过程中会发现很多的缺点,ActiveMQ的集群方式主要由两种:Master-Slave和Broker Cluster. 1.M ...

  3. Mybatis拦截器 mysql load data local 内存流处理

    Mybatis 拦截器不做解释了,用过的基本都知道,这里用load data local主要是应对大批量数据的处理,提高性能,也支持事务回滚,且不影响其他的DML操作,当然这个操作不要涉及到当前所lo ...

  4. 【hihoCoder】1033: 交错和

    初探数位dp 介绍了数位类统计的基础知识.以下列出其中的基础点: 基本问题 统计在区间[l, r]中满足条件的数的个数 思路 1. [l, r] 将问题转换为 在[0, r]中满足条件的个数 - 在[ ...

  5. 06@LabVIEW发布功能总结

    前言 在没有接触到LabVIEW强大的发布功能前,我时常发愁如何把自己的工具包给别人装上,有时候为了一些特定的安装,需要自己写一个一键安装的程序,时间长了发现还不如直接复制来的快,就是苦了那些用工具包 ...

  6. Ecilpse快捷键

     编辑快捷键 [ALT+/] 显示代码提示,以及代码自动补全功能.  [Ctrl+/] 添加注释  [Ctrl+D] 删除当前行 窗口快捷键  [Ctrl+M] 窗口最大化和还原   查看和定位快捷键 ...

  7. Android 学习路线图

  8. Python 中的枚举类型~转

    Python 中的枚举类型 摘要: 枚举类型可以看作是一种标签或是一系列常量的集合,通常用于表示某些特定的有限集合,例如星期.月份.状态等. 枚举类型可以看作是一种标签或是一系列常量的集合,通常用于表 ...

  9. ASP.NET Core 添加日志NLog

    1.在Nuget上搜索 NLog.Extensions.Logging 安装最新版 2.添加日志配置文件,在项目指定目录下添加配置文件nlog.config,内容添加如下: <?xml vers ...

  10. 两个NOI题目的启迪8皇后和算24

    论出于什么原因和目的,学习C++已经有一个星期左右,从开始就在做NOI的题目,到现在也没有正式的看<Primer C++>,不过还是受益良多,毕竟C++是一种”低级的高级语言“,而且NOI ...