KProperty2

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

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

Parameters

D - the type of the first receiver. In case of the extension property in a class this is the type of the declaring class of the property, or any subclass of that class.

E - the type of the second receiver. In case of the extension property in a class this is the type of the extension receiver.

R - the type of the property.

Types

Getter

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

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

Properties

getter

abstract val getter: Getter<D, E, R>

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

Inherited Properties

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.

Functions

get

abstract fun get(receiver1: D, receiver2: E): R

Returns the current value of the property. In case of the extension property in a class, the instance of the class should be passed first and the instance of the extension receiver second.

getDelegate

abstract fun getDelegate(receiver1: D, receiver2: E): Any?

Returns the value of the delegate if this is a delegated property, or null if this property is not delegated. See the Kotlin language documentation for more information.

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.

getExtensionDelegate

fun <D> KProperty2<D, *, *>.getExtensionDelegate(
    receiver: D
): Any?

Returns the instance of a delegated member extension property, or null if this property is not delegated. Throws an exception if this is not an extension property.

Inheritors

KMutableProperty2

interface KMutableProperty2<D, E, R> : 
    KProperty2<D, E, R>,
    KMutableProperty<R>

Represents a var-property, operations on which take two receivers as parameters.