在 Spring 和 Hibernate 中有很多回调函数的用法,感觉使用起来非常方便,那么回调函数是如何实现的呢?
首先需要定义一个回调接口,比如:
public interface QueryCallback<T> {
<T> List<T> query(Session session);
}
然后在定义的方法是调用接口方法。
public class Query {
public List<String> queryForList(String sql, Callback callback){
Session session = new Session();
return callback.query(session);
}
}
调用的时候就可以使用回调了。
String sql = "select * from user";
List<String> list = new QueryDB().queryForList(sql, new Callback() {
@Override
public List query(Session session) {
List<String> list = session.query(sql);
return list;
}
});