本例拿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. Python标准异常topic

    Python标准异常topic AssertionError                            断言语句 (assert)                              ...

  2. JavaScript 三级联动

    附件连接下载地址:http://files.cnblogs.com/files/CaktyRiven/js.zip <!DOCTYPE html> <html lang=" ...

  3. 如何完全卸载oracle11g?

    步骤一: 停止Oracle的所有服务. 步骤二: 运行%oracle_home%\app\Administrator\product\11.2.0\dbhome_1\deinstall \deinst ...

  4. apache 自带的ab测试

    ab -c 20 -n 2000 http://192.168.1.110:8080/index.php

  5. SQL语法整理

    SQL是Structured Query Language的缩写,中文全名为结构化查询语言,是一种用于数据存储,查询,更新和管理的关系数据库系统. SQL语法 创建表 create table tab ...

  6. Chrome F12学习

    Chrome实用调试技巧 Chrome调试工具常用功能整理 Google Chrome开发者工具使用(图文教程) 如何更专业的使用Chrome开发者工具

  7. Unity字节序问题

    问题 Unity中有些配置信息并不想在发布之后给其他人看到,所以在打包的时候进行了简单的编码处理,然后保存为.bytes类型,读取的时候再进行解码处理.今天遇到的很奇葩的问题是: 如果bytes文件U ...

  8. 阿里云服务器Linux CentOS安装配置(五)jetty配置、部署

    阿里云服务器Linux CentOS安装配置(五)jetty配置.部署 1.官网下载jetty:wget http://repo1.maven.org/maven2/org/eclipse/jetty ...

  9. 自定义组件-IPEdit

    输入IP用的.....支持windows风格显示 unit HSIPEdit; // ********************************************************* ...

  10. 关于Android中查看app安装时间等信息的问题

    PackageManager packageManager=this.getPackageManager(); try { PackageInfo packageInfo=packageManager ...