public interface IFuncService {
/**
*
* @param dataFunc 函数类型
* @param arg 函数的入参类型
* @param <S> 函数的入参类型
* @param <T> 函数的返参类型
*/
<S, T> void func(Function<S, List<T>> dataFunc, S arg);
}
public class FuncServiceImpl implements IFuncService {
/**
* 函数作为参数
* @param dataFunc 函数类型
* @param arg 函数的入参类型
* @param <S> dataFunc的入参类型
* @param <T> dataFunc的返参类型
*/
@Override
public <S, T> void func(Function<S, List<T>> dataFunc, S arg) {
//someCode
List<T> data = dataFunc.apply(arg);
//someCode
}
}