KFunction
interface KFunction<out R> : KCallable<R>, Function<R>
Represents a function with introspection capabilities.
Properties
Inherited Properties
isAbstract | abstract val isAbstract: Boolean true if this callable is abstract . |
isFinal | abstract val isFinal: Boolean true if this callable is final . |
isOpen | abstract val isOpen: Boolean true if this callable is open . |
name | abstract val name: String 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: |
parameters | abstract val parameters: List<KParameter> 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. |
returnType | abstract val returnType: KType The type of values returned by this callable. |
typeParameters | abstract val typeParameters: List<KTypeParameter> The list of type parameters of this callable. |
visibility | abstract val visibility: KVisibility? Visibility of this callable, or null if its visibility cannot be represented in Kotlin. |
Inherited Functions
call | abstract fun call(vararg args: Any?): R 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. |
callBy | abstract fun callBy(args: Map<KParameter, Any?>): R 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. |
Extension Properties
extensionReceiverParameter | val KCallable<*>.extensionReceiverParameter: KParameter? Returns a parameter representing the extension receiver instance needed to call this callable, or null if this callable is not an extension. |
instanceParameter | val KCallable<*>.instanceParameter: KParameter? 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. |
isAccessible | var KCallable<*>.isAccessible: Boolean Provides a way to suppress JVM access checks for a callable. |
javaConstructor | val <T> KFunction<T>.javaConstructor: Constructor<T>? 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. |
javaMethod | val KFunction<*>.javaMethod: Method? 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. |
valueParameters | val KCallable<*>.valueParameters: List<KParameter> Returns parameters of this callable, excluding the this instance and the extension receiver parameter. |
Extension Functions
findAnnotation | fun <T : Annotation> KAnnotatedElement.findAnnotation(): T? Returns an annotation of the given type on this element. |
findParameterByName | fun KCallable<*>.findParameterByName(
name: String
): KParameter? Returns the parameter of this callable with the given name, or null if there's no such parameter. |
reflect | fun <R> Function<R>.reflect(): KFunction<R>? 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. |
Inheritors
Getter | interface Getter<out R> : Accessor<R>, KFunction<R> Getter of the property is a get method declared alongside the property. |
Setter | interface Setter<R> : Accessor<R>, KFunction<Unit> Setter of the property is a set method declared alongside the property. |