W3cubDocs

/Kotlin

KProperty

Platform and version requirements: JVM (1.0), JS (1.1), Native (1.3)
interface KProperty<out V> : KCallable<V>

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

V - the type of the property value.

Types

Platform and version requirements: JVM (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 V>
Platform and version requirements: JVM (1.0)

Getter

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

interface Getter<out V> : KProperty.Accessor<V>, KFunction<V>

Properties

Platform and version requirements: JVM (1.0)

getter

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

abstract val getter: KProperty.Getter<V>
Platform and version requirements: JVM (1.1)

isConst

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

abstract val isConst: Boolean
Platform and version requirements: JVM (1.1)

isLateinit

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

abstract val isLateinit: Boolean

Inherited Properties

Platform and version requirements: JVM (1.1)

isAbstract

true if this callable is abstract.

abstract val isAbstract: Boolean
Platform and version requirements: JVM (1.1)

isFinal

true if this callable is final.

abstract val isFinal: Boolean
Platform and version requirements: JVM (1.1)

isOpen

true if this callable is open.

abstract val isOpen: Boolean
Platform and version requirements: JVM (1.3)

isSuspend

true if this is a suspending function.

abstract val isSuspend: Boolean
Platform and version requirements: JVM (1.0)

parameters

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.

abstract val parameters: List<KParameter>
Platform and version requirements: JVM (1.1)

typeParameters

The list of type parameters of this callable.

abstract val typeParameters: List<KTypeParameter>
Platform and version requirements: JVM (1.1)

visibility

Visibility of this callable, or null if its visibility cannot be represented in Kotlin.

abstract val visibility: KVisibility?

Inherited Functions

Platform and version requirements: JVM (1.0)

call

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.

abstract fun call(vararg args: Any?): R
Platform and version requirements: JVM (1.0)

callBy

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.

abstract fun callBy(args: Map<KParameter, Any?>): R

Extension Properties

Platform and version requirements: 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?
Platform and version requirements: 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?
Platform and version requirements: JVM (1.0)

isAccessible

Provides a way to suppress JVM access checks for a callable.

var KCallable<*>.isAccessible: Boolean
Platform and version requirements: 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?
Platform and version requirements: 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?
Platform and version requirements: 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

Platform and version requirements: 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
Platform and version requirements: 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
Platform and version requirements: JVM (1.1)

findAnnotation

Returns an annotation of the given type on this element.

fun <T : Annotation> KAnnotatedElement.findAnnotation(): T?
Platform and version requirements: 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?
Platform and version requirements: JVM (1.4)

hasAnnotation

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

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

Inheritors

Platform and version requirements: JVM (1.0), JS (1.0), Native (1.0)

KMutableProperty

Represents a property declared as a var.

interface KMutableProperty<V> : KProperty<V>
Platform and version requirements: JVM (1.0), JS (1.0), 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 V> : KProperty<V>, () -> V
Platform and version requirements: JVM (1.0), JS (1.0), Native (1.0)

KProperty1

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

interface KProperty1<T, out V> : KProperty<V>, (T) -> V
Platform and version requirements: JVM (1.0), JS (1.0), Native (1.0)

KProperty2

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

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

© 2010–2020 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-property/index.html