本例拿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); }