KFunction
interface KFunction<out R> : KCallable<R>Represents a function with introspection capabilities.
Properties
isExternal
true if this function is external.
See the Kotlin language documentation
for more information.
abstract val isExternal: BooleanisInfix
true if this function is infix.
See the Kotlin language documentation
for more information.
abstract val isInfix: BooleanisInline
true if this function is inline.
See the Kotlin language documentation
for more information.
abstract val isInline: BooleanisOperator
true if this function is operator.
See the Kotlin language documentation
for more information.
abstract val isOperator: BooleanisSuspend
true if this is a suspending function.
abstract val isSuspend: BooleanExtension Properties
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?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?isAccessible
Provides a way to suppress JVM access checks for a callable.
var KCallable<*>.isAccessible: BooleanjavaConstructor
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>?valueParameters
Returns parameters of this callable, excluding the this instance and the extension receiver parameter.
val KCallable<*>.valueParameters: List<KParameter>Extension Functions
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?
): RcallSuspendBy
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?>
): RfindAnnotation
Returns an annotation of the given type on this element.
fun <T : Annotation> KAnnotatedElement.findAnnotation(): T?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?hasAnnotation
Returns true if this element is annotated with an annotation of type T.
fun <T : Annotation> KAnnotatedElement.hasAnnotation(): Booleanreflect
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.