interface KProperty2<D, E, out R> : KProperty<R>, (D, E) -> R
interface KProperty2<T1, T2, out R> : KProperty<R>, (T1, T2) -> R
Represents a property, operations on which take two receivers as parameters, such as an extension property declared in a class.
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.
Getter of the property is a get
method declared alongside the property.
interface Getter<D, E, out R> : Getter<R>, (D, E) -> R
The getter of this property, used to obtain the value of the property.
abstract val getter: Getter<D, E, R>
abstract fun get(receiver1: T1, receiver2: T2): 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.
abstract fun get(receiver1: D, receiver2: E): R
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.
abstract fun getDelegate(receiver1: D, receiver2: E): Any?
abstract operator fun invoke(p1: T1, p2: T2): R
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?
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?
Provides a way to suppress JVM access checks for a callable.
var KCallable<*>.isAccessible: Boolean
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?
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?
Returns parameters of this callable, excluding the this
instance and the extension receiver parameter.
val KCallable<*>.valueParameters: List<KParameter>
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
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
Returns an annotation of the given type on this element.
fun <T : Annotation> KAnnotatedElement.findAnnotation(): T?
Returns the parameter of this callable with the given name, or null
if there's no such parameter.
fun KCallable<*>.findParameterByName( name: String ): KParameter?
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.
fun <D> KProperty2<D, *, *>.getExtensionDelegate( receiver: D ): Any?
Returns true if this element is annotated with an annotation of type T.
fun <T : Annotation> KAnnotatedElement.hasAnnotation(): Boolean
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.
fun <R> Function<R>.reflect(): KFunction<R>?
Represents a var
-property, operations on which take two receivers as parameters.
interface KMutableProperty2<D, E, R> : KProperty2<D, E, R>, KMutableProperty<R>
interface KMutableProperty2<T1, T2, R> : KProperty2<T1, T2, R>, KMutableProperty<R>
© 2010–2019 JetBrains s.r.o.
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-property2/index.html