KFunction

Common
JVM
JS
1.0
interface KFunction<out R> : KCallable<R>, Function<R>
Native
1.3
interface KFunction<out R> : KCallable<R>

Represents a function with introspection capabilities.

Properties

Common
JVM
JS
Native
1.0

isExternal

true if this function is external. See the Kotlin language documentation for more information.

abstract val isExternal: Boolean
Common
JVM
JS
Native
1.0

isInfix

true if this function is infix. See the Kotlin language documentation for more information.

abstract val isInfix: Boolean
Common
JVM
JS
Native
1.0

isInline

true if this function is inline. See the Kotlin language documentation for more information.

abstract val isInline: Boolean
Common
JVM
JS
Native
1.0

isOperator

true if this function is operator. See the Kotlin language documentation for more information.

abstract val isOperator: Boolean
Common
JVM
JS
Native
1.0

isSuspend

true if this is a suspending function.

abstract val isSuspend: Boolean

Extension Properties

JVM
1.0

extensionReceiverParameter

Returns a parameter representing the extension receiver instance needed to call this callable, or null if this callable is not an extension.

val KCallable<*>.extensionReceiverParameter: KParameter?
JVM
1.0

instanceParameter

Returns a parameter representing the this instance needed to call this callable, or null if this callable is not a member of a class and thus doesn't take such parameter.

val KCallable<*>.instanceParameter: KParameter?
JVM
1.0

isAccessible

Provides a way to suppress JVM access checks for a callable.

var KCallable<*>.isAccessible: Boolean
JVM
1.0

javaConstructor

Returns a Java Constructor instance corresponding to the given Kotlin function, or null if this function is not a constructor or cannot be represented by a Java Constructor.

val <T> KFunction<T>.javaConstructor: Constructor<T>?
JVM
1.0

javaMethod

Returns a Java Method instance corresponding to the given Kotlin function, or null if this function is a constructor or cannot be represented by a Java Method.

val KFunction<*>.javaMethod: Method?
JVM
1.0

valueParameters

Returns parameters of this callable, excluding the this instance and the extension receiver parameter.

val KCallable<*>.valueParameters: List<KParameter>

Extension Functions

JVM
1.0

callSuspend

Calls a callable in the current suspend context. If the callable is not a suspend function, behaves as KCallable.call. Otherwise, calls the suspend function with current continuation.

suspend fun <R> KCallable<R>.callSuspend(
    vararg args: Any?
): R
JVM
1.0

callSuspendBy

Calls a callable in the current suspend context. If the callable is not a suspend function, behaves as KCallable.callBy. Otherwise, calls the suspend function with current continuation.

suspend fun <R> KCallable<R>.callSuspendBy(
    args: Map<KParameter, Any?>
): R
JVM
1.0

findAnnotation

Returns an annotation of the given type on this element.

fun <T : Annotation> KAnnotatedElement.findAnnotation(): T?
JVM
1.0

findParameterByName

Returns the parameter of this callable with the given name, or null if there's no such parameter.

fun KCallable<*>.findParameterByName(
    name: String
): KParameter?
JVM
1.0

reflect

This is an experimental API. Given a class for a compiled Kotlin lambda or a function expression, returns a KFunction instance providing introspection capabilities for that lambda or function expression and its parameters. Not all features are currently supported, in particular KCallable.call and KCallable.callBy will fail at the moment.

fun <R> Function<R>.reflect(): KFunction<R>?

Inheritors

Common
JVM
JS
Native
1.0

Getter

Getter of the property is a get method declared alongside the property.

interface Getter<out R> : Accessor<R>, KFunction<R>
Native
1.3

KFunction0

interface KFunction0<out R> : () -> R, KFunction<R>
Native
1.3

KFunction1

interface KFunction1<in P1, out R> : (P1) -> R, KFunction<R>
Native
1.3

KFunction10

interface KFunction10<in P1, in P2, in P3, in P4, in P5, in P6, in P7, in P8, in P9, in P10, out R> : 
    (P1, P2, P3, P4, P5, P6, P7, P8, P9, P10) -> R,
    KFunction<R>
Native
1.3

KFunction11

interface KFunction11<in P1, in P2, in P3, in P4, in P5, in P6, in P7, in P8, in P9, in P10, in P11, out R> : 
    (P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11) -> R,
    KFunction<R>
Native
1.3

KFunction12

interface KFunction12<in P1, in P2, in P3, in P4, in P5, in P6, in P7, in P8, in P9, in P10, in P11, in P12, out R> : 
    (P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12) -> R,
    KFunction<R>
Native
1.3

KFunction13

interface KFunction13<in P1, in P2, in P3, in P4, in P5, in P6, in P7, in P8, in P9, in P10, in P11, in P12, in P13, out R> : 
    (P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13) -> R,
    KFunction<R>
Native
1.3

KFunction14

interface KFunction14<in P1, in P2, in P3, in P4, in P5, in P6, in P7, in P8, in P9, in P10, in P11, in P12, in P13, in P14, out R> : 
    (P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14) -> R,
    KFunction<R>
Native
1.3

KFunction15

interface KFunction15<in P1, in P2, in P3, in P4, in P5, in P6, in P7, in P8, in P9, in P10, in P11, in P12, in P13, in P14, in P15, out R> : 
    (P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15) -> R,
    KFunction<R>
Native
1.3

KFunction16

interface KFunction16<in P1, in P2, in P3, in P4, in P5, in P6, in P7, in P8, in P9, in P10, in P11, in P12, in P13, in P14, in P15, in P16, out R> : 
    (P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16) -> R,
    KFunction<R>
Native
1.3

KFunction17

interface KFunction17<in P1, in P2, in P3, in P4, in P5, in P6, in P7, in P8, in P9, in P10, in P11, in P12, in P13, in P14, in P15, in P16, in P17, out R> : 
    (P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, P17) -> R,
    KFunction<R>
Native
1.3

KFunction18

interface KFunction18<in P1, in P2, in P3, in P4, in P5, in P6, in P7, in P8, in P9, in P10, in P11, in P12, in P13, in P14, in P15, in P16, in P17, in P18, out R> : 
    (P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, P17, P18) -> R,
    KFunction<R>
Native
1.3

KFunction19

interface KFunction19<in P1, in P2, in P3, in P4, in P5, in P6, in P7, in P8, in P9, in P10, in P11, in P12, in P13, in P14, in P15, in P16, in P17, in P18, in P19, out R> : 
    (P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, P17, P18, P19) -> R,
    KFunction<R>
Native
1.3

KFunction2

interface KFunction2<in P1, in P2, out R> : 
    (P1, P2) -> R,
    KFunction<R>
Native
1.3

KFunction20

interface KFunction20<in P1, in P2, in P3, in P4, in P5, in P6, in P7, in P8, in P9, in P10, in P11, in P12, in P13, in P14, in P15, in P16, in P17, in P18, in P19, in P20, out R> : 
    (P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, P17, P18, P19, P20) -> R,
    KFunction<R>
Native
1.3

KFunction21

interface KFunction21<in P1, in P2, in P3, in P4, in P5, in P6, in P7, in P8, in P9, in P10, in P11, in P12, in P13, in P14, in P15, in P16, in P17, in P18, in P19, in P20, in P21, out R> : 
    (P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, P17, P18, P19, P20, P21) -> R,
    KFunction<R>
Native
1.3

KFunction22

interface KFunction22<in P1, in P2, in P3, in P4, in P5, in P6, in P7, in P8, in P9, in P10, in P11, in P12, in P13, in P14, in P15, in P16, in P17, in P18, in P19, in P20, in P21, in P22, out R> : 
    (P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, P17, P18, P19, P20, P21, P22) -> R,
    KFunction<R>
Native
1.3

KFunction3

interface KFunction3<in P1, in P2, in P3, out R> : 
    (P1, P2, P3) -> R,
    KFunction<R>
Native
1.3

KFunction4

interface KFunction4<in P1, in P2, in P3, in P4, out R> : 
    (P1, P2, P3, P4) -> R,
    KFunction<R>
Native
1.3

KFunction5

interface KFunction5<in P1, in P2, in P3, in P4, in P5, out R> : 
    (P1, P2, P3, P4, P5) -> R,
    KFunction<R>
Native
1.3

KFunction6

interface KFunction6<in P1, in P2, in P3, in P4, in P5, in P6, out R> : 
    (P1, P2, P3, P4, P5, P6) -> R,
    KFunction<R>
Native
1.3

KFunction7

interface KFunction7<in P1, in P2, in P3, in P4, in P5, in P6, in P7, out R> : 
    (P1, P2, P3, P4, P5, P6, P7) -> R,
    KFunction<R>
Native
1.3

KFunction8

interface KFunction8<in P1, in P2, in P3, in P4, in P5, in P6, in P7, in P8, out R> : 
    (P1, P2, P3, P4, P5, P6, P7, P8) -> R,
    KFunction<R>
Native
1.3

KFunction9

interface KFunction9<in P1, in P2, in P3, in P4, in P5, in P6, in P7, in P8, in P9, out R> : 
    (P1, P2, P3, P4, P5, P6, P7, P8, P9) -> R,
    KFunction<R>
Common
JVM
JS
Native
1.0

Setter

Setter of the property is a set method declared alongside the property.

interface Setter<R> : Accessor<R>, KFunction<Unit>