由于使用了泛型,很多操作都要用闭包自定义实现。