您可以像这样简单地将变量值复制到单独的最终变量中:
double timer = 0;int size = 0;while(true) { final finalSize = size; timer = time(() -> functionB(finalSize)); size *= 10;}另外,我可以建议您为要计时的功能的各种参数制作更多的计时功能。这里是你怎么做的:
public class Test { public static void main(final String[] args) { int ttt = 0; time(ttt, Test::func); time(ttt, ttt, Test::func); } public static void func(int i) { } public static void func(int i, int j) { } public static <T> double time(T arg, Consumer<T> func) { long startTime = System.nanoTime(); func.accept(arg); return (System.nanoTime() - startTime) / 1000000000.0; } public static <T1, T2> double time(T1 arg1, T2 arg2, BiConsumer<T1, T2> func) { long startTime = System.nanoTime(); func.accept(arg1, arg2); return (System.nanoTime() - startTime) / 1000000000.0; }}


