KProperty

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

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

JVM
JS
1.0

Accessor

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

interface Accessor<out R>
JVM
JS
1.0

Getter

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

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

Properties

JVM
JS
1.0

getter

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

abstract val getter: Getter<R>
JVM
JS
1.1

isConst

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

abstract val isConst: Boolean
JVM
JS
1.1

isLateinit

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

abstract val isLateinit: Boolean

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

javaField

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

val KProperty<*>.javaField: Field?
JVM
1.0

javaGetter

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.

val KProperty<*>.javaGetter: Method?
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?
JVM
1.3

hasAnnotation

Returns true if this element is annotated with an annotation of type T.

fun <T : Annotation> KAnnotatedElement.hasAnnotation(): Boolean

Inheritors

Common
JVM
JS
Native
1.0

KMutableProperty

Represents a property declared as a var.

interface KMutableProperty<R> : KProperty<R>
Common
JVM
JS
Native
1.0

KProperty0

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.

interface KProperty0<out R> : KProperty<R>, () -> R
Common
JVM
JS
Native
1.0

KProperty1

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

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

KProperty2

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

Common
JVM
JS
1.0
interface KProperty2<D, E, out R> : KProperty<R>, (D, E) -> R
Native
1.3
interface KProperty2<T1, T2, out R> : 
    KProperty<R>,
    (T1, T2) -> R