我可以将方法作为Java中另一个方法的参数传递吗?

我试图衡量几种方法的执行时间。所以我在想做一个方法,而不是多次重复相同的代码。

这是我的代码:

private void MeasureExecutionTime(Method m)

{

startTime = System.nanoTime();

try

{

m();

}

finally

{

endTime = System.nanoTime();

}

elapsedTime = endTime - startTime;

System.out.println("This takes " + elapsedTime + " ns.");

}

假设我有myMethod(),如何使用它MeasureExecutionTime()来衡量myMethod执行时间?

回答:

方法不是Java中的一流对象,因此不能将它们作为参数传递。您可以将方法调用包装在扩展例如Runnable接口的匿名类中:

private void MeasureExecutionTime(Runnable r) {

r.run();

}

...

MeasureExecutionTime(new Runnable() { public void run() { m(); } });

以上是 我可以将方法作为Java中另一个方法的参数传递吗? 的全部内容, 来源链接: utcz.com/qa/415571.html

回到顶部