这个kotlin代码与java的等价物是什么
下面是一些打印任何语句或语句块的执行时间的kotlin代码:
fun exeTime(code: () -> Unit) {
var start = System.currentTimeMillis()
code()
var end = System.currentTimeMillis() - start
println("Execution time: " + end + "ms")
}
它可以这样使用:
exeTime {
// some code
// ...
}
在Java中,exeTime函数的等效结构是什么
# 1 楼答案
这是一个简单的“高阶函数”的例子,即一个以另一个函数为参数的函数。 在Java中,从1.8开始,您还可以使用lambdas,它可以如下所示:
另外
Runnable
可以用作接口类型在1.8之前,您应该使用匿名函数,而不是传递给
exeTime
函数的lambda# 2 楼答案
Java没有数据类型作为单位,所以基本上你不能传递一个方法而不是它的值。在Java中,当您将方法作为方法的参数传递时,它将执行。如果需要在Java中执行同样的操作,那么使用反射是最简单的方法。类似的东西
# 3 楼答案
我会是这样的:
阅读这篇doc关于高阶函数和lambda的文章