KProperty2
interface KProperty2<D, E, out V> : KProperty<V>, (D, E) -> V
Представляет свойство, операции над которым принимают два получателя в качестве параметров, например, расширяющее свойство, объявленное в классе.
Параметры
D - тип первого получателя. В случае расширяющего свойства в классе это тип объявляющего класса свойства или любого подкласса этого класса.
E - тип второго получателя. В случае расширяющего свойства в классе это тип расширяющего получателя.
V - тип значения свойства.
Типы
Getter
Геттер свойства — это get метод, объявленный вместе со свойством.
interface Getter<D, E, out V> : KProperty.Getter<V>, (D, E) -> V
Свойства
getter
Геттер этого свойства, используемый для получения значения свойства.
abstract val getter: KProperty2.Getter<D, E, V>
Наследуемые свойства
getter
Геттер этого свойства, используемый для получения значения свойства.
abstract val getter: KProperty.Getter<V>
isConst
true если это свойство является const. См. документацию языка Kotlin для получения дополнительной информации.
abstract val isConst: Boolean
isLateinit
true если это свойство является lateinit. См. документацию языка Kotlin для получения дополнительной информации.
abstract val isLateinit: Boolean
Функции
get
Возвращает текущее значение свойства. В случае расширяющего свойства в классе сначала должен быть передан экземпляр класса, а затем экземпляр расширяющего получателя.
abstract fun get(receiver1: D, receiver2: E): V
getDelegate
Возвращает значение делегата, если это делегированное свойство, или null если это свойство не делегировано. См. документацию языка Kotlin для получения дополнительной информации.
abstract fun getDelegate(receiver1: D, receiver2: E): Any?
invoke
abstract operator fun invoke(p1: D, p2: E): V
Расширяемые свойства
extensionReceiverParameter
Возвращает параметр, представляющий экземпляр расширяющего получателя, необходимый для вызова этого вызываемого объекта, или null если этот вызываемый объект не является расширяющим.
val KCallable<*>.extensionReceiverParameter: KParameter?
instanceParameter
Возвращает параметр, представляющий экземпляр this , необходимый для вызова этого вызываемого объекта, или null если этот вызываемый объект не является членом класса и, следовательно, не принимает такой параметр.
val KCallable<*>.instanceParameter: KParameter?
isAccessible
Предоставляет способ подавления проверок доступа JVM для вызываемого объекта.
var KCallable<*>.isAccessible: Boolean
javaField
Возвращает экземпляр Java Field, соответствующий полю-обработчику данного свойства, или null если у свойства нет поля-обработчика.
val KProperty<*>.javaField: Field?
javaGetter
Возвращает экземпляр Java Method, соответствующий геттеру данного свойства, или null если у свойства нет геттера, например, в случае простого закрытого val в классе.
val KProperty<*>.javaGetter: Method?
valueParameters
Возвращает параметры этого вызываемого объекта, за исключением параметра экземпляра this и параметра расширяющего получателя.
val KCallable<*>.valueParameters: List<KParameter>
Расширяемые функции
callSuspend
Вызывает вызываемый объект в текущем контексте приостановки. Если вызываемый объект не является функцией приостановки, ведет себя как KCallable.call. В противном случае вызывает функцию приостановки с текущим продолжением.
suspend fun <R> KCallable<R>.callSuspend( vararg args: Any? ): R
callSuspendBy
Вызывает вызываемый объект в текущем контексте приостановки. Если вызываемый объект не является функцией приостановки, ведет себя как KCallable.callBy. В противном случае вызывает функцию приостановки с текущим продолжением.
suspend fun <R> KCallable<R>.callSuspendBy( args: Map<KParameter, Any?> ): R
findAnnotation
Возвращает аннотацию заданного типа на этом элементе.
fun <T : Annotation> KAnnotatedElement.findAnnotation(): T?
findAnnotations
Возвращает все аннотации заданного типа на этом элементе, включая аннотации, примененные индивидуально, а также повторяющиеся аннотации.
fun <T : Annotation> KAnnotatedElement.findAnnotations(): List<T>
fun <T : Annotation> KAnnotatedElement.findAnnotations( klass: KClass<T> ): List<T>
findParameterByName
Возвращает параметр этого вызываемого объекта с заданным именем или null , если такого параметра нет.
fun KCallable<*>.findParameterByName( name: String ): KParameter?
getExtensionDelegate
Возвращает экземпляр делегированного расширяемого члена свойства или null , если это свойство не делегировано. Выбрасывает исключение, если это не расширяемое свойство.
fun <D> KProperty2<D, *, *>.getExtensionDelegate( receiver: D ): Any?
hasAnnotation
Возвращает true, если этот элемент аннотирован аннотацией типа T.
fun <T : Annotation> KAnnotatedElement.hasAnnotation(): Boolean
reflect
Это экспериментальный API. Принимая класс скомпилированной Kotlin лямбды или выражения функции, возвращает экземпляр KFunction, предоставляющий возможности интроспекции для этой лямбды или выражения функции и её параметров. Не все функции в настоящее время поддерживаются, в частности KCallable.call и KCallable.callBy пока не работают.
fun <R> Function<R>.reflect(): KFunction<R>?
Наследники
KMutableProperty2
Представляет var свойство, операции над которым принимают два получателя в качестве параметров.
interface KMutableProperty2<D, E, V> : KProperty2<D, E, V>, KMutableProperty<V>
© 2010–2023 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-property2/index.html