我可以将方法作为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