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: Boolean
isInfix
true
if this function is infix
.
See the Kotlin language documentation
for more information.
abstract val isInfix: Boolean
isInline
true
if this function is inline
.
See the Kotlin language documentation
for more information.
abstract val isInline: Boolean
isOperator
true
if this function is operator
.
See the Kotlin language documentation
for more information.
abstract val isOperator: Boolean
isSuspend
true
if this is a suspending function.
abstract val isSuspend: Boolean
Extension 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: Boolean
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>?
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?
): R
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
findAnnotation
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(): Boolean
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.