Rich Rich - 7 months ago 10
Java Question

Getting a reference to a Kotlin function as a Java Method

I have a Java method that takes a

Method
parameter:

void doSomethingWithMethod(Method m) {
...
}


And I have a Kotlin class that contains a function:

class MyClass {

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

}


I can get a reference to the function with
MyClass::myFunction
, but I don't see a way to pass it into the
doSomethingWithMethod
method. Is there an equivalent to the
.java
property that can be applied to a Kotlin class reference to get its Java equivalent?

If not, is there a workaround?

Answer
import kotlin.reflect.jvm.javaMethod

val method = MyClass::myFunction.javaMethod

The javaMethod property is not part of the standard Kotlin library, but is part of the official kotlin-reflect.jar. It can be added through Maven with the following dependency:

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