T - @FunctionalInterface public interface Recursion<T>
| 限定符和类型 | 方法和说明 |
|---|---|
Recursion<T> |
apply()
用于递归栈帧之间的连接,惰性求值
|
static <T> Recursion<T> |
call(Recursion<T> nextFrame)
统一结构的方法,获得当前递归的下一个递归
|
static <T> Recursion<T> |
done(T value)
结束当前递归,重写对应的默认方法的值,完成状态改为true,设置最终返回结果,设置非法递归调用
|
default T |
getResult()
获得递归结果,只有在递归结束才能调用,这里默认给出异常,通过工具类的重写来获得值
|
default T |
invoke()
及早求值,执行者一系列的递归,因为栈帧只有一个,所以使用findFirst获得最终的栈帧,接着调用getResult方法获得最终递归值
|
default boolean |
isFinished()
判断当前递归是否结束
|
static <I,R> R |
memo(BiFunction<Function<I,R>,I,R> function,
I input)
备忘录模式 函数封装
|
default boolean isFinished()
default T getResult()
default T invoke()
static <T> Recursion<T> call(Recursion<T> nextFrame)
T - TnextFrame - 下一个递归static <T> Recursion<T> done(T value)
T - Tvalue - 最终递归值static <I,R> R memo(BiFunction<Function<I,R>,I,R> function, I input)
I - 输出值类型R - 返回值类型function - 递归策略算法input - 输入值Copyright © 2024. All rights reserved.