java这个kotlin代码的等价物是什么?

以下是一些打印任何语句或语句块的执行时间的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函数的等价构造是什么?

3 Solutions collect form web for “java这个kotlin代码的等价物是什么?”

我会是这样的:

 public void exeTime(Runnable code){ long start = System.currentTimeMillis(); code.run(); long end = System.currentTimeMillis() - start; System.out.println("Execution time: " + end + "ms"); } 

阅读关于高阶函数和lambdas的文档

那么,Java没有数据类型单位,所以基本上你不能传递一个方法,而不是它的价值。 当您将方法作为Java中方法的参数传递时,它将执行。 如果你需要在Java中使用反射的最简单的方法。 类似的东西。

 void <T> execTime (Class<T> type, String methodName, Object... methodParams) { } 

这是一个“高阶函数”的简单例子,即将另一个函数作为参数的函数。 在Java中,你也可以使用从1.8开始的lambda表达式,如下所示:

 public static void main(String[] args) { exeTime(v -> System.out.println("from Lambda")); } static void exeTime(Consumer<Void> code) { long start = System.currentTimeMillis(); code.accept(null); long end = System.currentTimeMillis() - start; System.out.println("Execution time: " + end + "ms"); } 

也可以使用Runnable作为接口类型。

在1.8之前,你会使用匿名函数而不是传递给exeTime函数的lambda函数。

  • Kotlin和通用构造函数让我感到困惑
  • 密封的内部类
  • Android - 按钮点击取消静音VideoView
  • 减少范围抛出NoClassDefFoundError:kotlin / IntIterator
  • 将Kotlin .class文件打包到JAR中执行
  • 如何从Kotlin调用一个JavaScript函数,期望一个jQuery ajax设置对象?
  • 需要Groovy知识来理解Gradle?
  • Hibernate @OneToMany连接表抛出StackOverflowException
  • 无法find填充字段 - 使用Kotlin与房间数据库
  • 在APK META-INF / library_release.kotlin_module中复制了重复的文件
  • 如何使用Maven编译Java + Kotlin项目?
  • Kotlin language will be the best programming language for Android.