LeoColman
03/04/2019, 6:36 PMClass.forName("myClass").declaredMethods.map { it.kotlinFunction!! }.filter { fn -> fn.parameters.any { it is KFunction<*> } }
but it didn't workudalov
it is KFunction<*>
you need to check the parameter's type: it.type.classifier == Function::class
LeoColman
03/05/2019, 3:47 PMfun main(args: Array<String>) {
val funcs = Foo::class.declaredFunctions.filter { func ->
func.parameters.any { param ->
param.type.isSubtypeOf(Function::class.starProjectedType)
}
}
println(funcs)
}
class Foo {
fun <A> foo(fn: (A) -> Unit) {}
fun <A, B> foo2(fn: (A, B) -> Unit) {}
fun <A, B, C> foo3(fn: (A, B, C) -> Unit) {}
fun notThisOne() { }
}