KCallable

Common
1.0
interface KCallable<out R>
JVM
JS
Native
1.0
interface KCallable<out R> : KAnnotatedElement

Represents a callable entity, such as a function or a property.

Parameters

R - return type of the callable.

Properties

Common
JVM
JS
Native
1.1

isAbstract

true if this callable is abstract.

abstract val isAbstract: Boolean
Common
JVM
JS
Native
1.1

isFinal

true if this callable is final.

abstract val isFinal: Boolean
Common
JVM
JS
Native
1.1

isOpen

true if this callable is open.

abstract val isOpen: Boolean
Common
JVM
JS
Native
1.3

isSuspend

true if this is a suspending function.

abstract val isSuspend: Boolean
Common
JVM
JS
Native
1.0

name

The name of this callable as it was declared in the source code. If the callable has no name, a special invented name is created. Nameless callables include:

abstract val name: String
Common
JVM
JS
Native
1.0

parameters

Parameters required to make a call to this callable. If this callable requires a this instance or an extension receiver parameter, they come first in the list in that order.

abstract val parameters: List<KParameter>
Common
JVM
JS
Native
1.0

returnType

The type of values returned by this callable.

abstract val returnType: KType
Common
JVM
JS
Native
1.1

typeParameters

The list of type parameters of this callable.

abstract val typeParameters: List<KTypeParameter>
Common
JVM
JS
Native
1.1

visibility

Visibility of this callable, or null if its visibility cannot be represented in Kotlin.

abstract val visibility: KVisibility?

Functions

Common
JVM
JS
Native
1.0

call

Calls this callable with the specified list of arguments and returns the result. Throws an exception if the number of specified arguments is not equal to the size of parameters, or if their types do not match the types of the parameters.

abstract fun call(vararg args: Any?): R
Common
JVM
JS
Native
1.0

callBy

Calls this callable with the specified mapping of parameters to arguments and returns the result. If a parameter is not found in the mapping and is not optional (as per KParameter.isOptional), or its type does not match the type of the provided value, an exception is thrown.

abstract fun callBy(args: Map<KParameter, Any?>): R

Extension Properties

JVM
1.1

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.1

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.1

valueParameters

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

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

Extension Functions

JVM
1.3

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.3

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.1

findAnnotation

Returns an annotation of the given type on this element.

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

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?

Inheritors

KFunction

Represents a function with introspection capabilities.

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

KProperty

Represents a property, such as a named val or var declaration. Instances of this class are obtainable by the :: operator.

interface KProperty<out R> : KCallable<R>