Java中的回调函数

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

 

转载于:https://www.cnblogs.com/tianpengfei/p/5757128.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值