KProperty

interface KProperty<out R> : KCallable<R> (source)

Represents a property, such as a named val or var declaration. Instances of this class are obtainable by the :: operator. See the Kotlin language documentation for more information.

Parameters

R - the type of the property.

Types

Accessor

interface Accessor<out R>

Represents a property accessor, which is a get or set method declared alongside the property. See the Kotlin language documentation for more information.

Getter

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

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

Properties

getter

abstract val getter: Getter<R>

The getter of this property, used to obtain the value of the property.

isConst

abstract val isConst: Boolean

true if this property is const. See the Kotlin language documentation for more information.

isLateinit

abstract val isLateinit: Boolean

true if this property is lateinit. See the Kotlin language documentation for more information.

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.

javaField

val KProperty<*>.javaField: Field?

Returns a Java Field instance corresponding to the backing field of the given property, or null if the property has no backing field.

javaGetter

val KProperty<*>.javaGetter: Method?

Returns a Java Method instance corresponding to the getter of the given property, or null if the property has no getter, for example in case of a simple private val in a class.

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.

Inheritors

KMutableProperty

interface KMutableProperty<R> : KProperty<R>

Represents a property declared as a var.

KProperty0

interface KProperty0<out R> : KProperty<R>, () -> R

Represents a property without any kind of receiver. Such property is either originally declared in a receiverless context such as a package, or has the receiver bound to it.

KProperty1

interface KProperty1<T, out R> : KProperty<R>, (T) -> R

Represents a property, operations on which take one receiver as a parameter.

KProperty2

interface KProperty2<D, E, out R> : KProperty<R>, (D, E) -> R

Represents a property, operations on which take two receivers as parameters, such as an extension property declared in a class.