编写一个通用方法来使用Java 8 lambdas计算任何其他方法的时间

时间:2016-01-31 02:19:25

标签: lambda java-8 timing

我一直试图弄清楚是否有办法编写一个将Java 8方法引用作为输入的方法,运行该方法并返回运行所花费的时间。

public static long time(Runnable c) {
    long start, end;
    start = System.currentTimeMillis();
    c.run();
    end = System.currentTimeMillis();
    return (end - start);
}

这是我到目前为止所做的,但这只适用于没有参数的方法...我正在寻找可以使用可以接受参数的方法的东西。这可能吗?

1 个答案:

答案 0 :(得分:6)

好吧,解决方法是将你的方法包装在lambda中

int foo =...
Object bar = ...

long elapsed = time( () -> myMethod(foo, bar));