以Java方法获取对Kotlin函数的引用

我有一个采用Method参数的Java方法:

 void doSomethingWithMethod(Method m) { ... } 

我有一个包含一个函数的Kotlin类:

 class MyClass { fun myFunction() : List<Something> { ... } } 

我可以使用MyClass::myFunction获得对该函数的引用,但是我没有看到将其传递到doSomethingWithMethod方法的方法。 是否有一个相当于.java属性,可以应用于Kotlin类的参考,以获得其Java相当于?

如果没有,是否有解决方法?

 import kotlin.reflect.jvm.javaMethod val method = MyClass::myFunction.javaMethod 

javaMethod属性不是标准Kotlin库的一部分,而是官方kotlin-reflect.jar 。 它可以通过Maven添加以下依赖项:

  <dependency> <groupId>org.jetbrains.kotlin</groupId> <artifactId>kotlin-reflect</artifactId> <version>${kotlin.version}</version> </dependency> 

你可以使用标准的Java反射来获取kotlin中的Method:

 MyClass::class.java.getMethod("myFunction") 

要么

 MyClass::class.java.getDeclaredMethod("myFunction") 

不需要依赖来做到这一点。

文档:
方法getMethod(String name,Class … parameterTypes)
方法getDeclaredMethod(String name,Class … parameterTypes)