Runtime API for Kotlin reflection
Represents an annotated element and allows to obtain its annotations. See the Kotlin language documentation for more information.
interface KAnnotatedElement
Represents a callable entity, such as a function or a property.
interface KCallable<out R>
interface KCallable<out R> : KAnnotatedElement
Represents a class and provides introspection capabilities. Instances of this class are obtainable by the ::class
syntax. See the Kotlin language documentation for more information.
interface KClass<T : Any> : KClassifier
interface KClass<T : Any> : KDeclarationContainer, KAnnotatedElement, KClassifier
A classifier is either a class or a type parameter.
interface KClassifier
Represents an entity which may contain declarations of any other entities, such as a class or a package.
interface KDeclarationContainer
Represents a function with introspection capabilities.
interface KFunction<out R> : KCallable<R>, Function<R>
Represents a property declared as a var
.
interface KMutableProperty<V> : KProperty<V>
Represents a var
-property without any kind of receiver.
interface KMutableProperty0<V> : KProperty0<V>, KMutableProperty<V>
Represents a var
-property, operations on which take one receiver as a parameter.
interface KMutableProperty1<T, V> : KProperty1<T, V>, KMutableProperty<V>
Represents a var
-property, operations on which take two receivers as parameters.
interface KMutableProperty2<D, E, V> : KProperty2<D, E, V>, KMutableProperty<V>
Represents a parameter passed to a function or a property getter/setter, including this
and extension receiver parameters.
interface KParameter : KAnnotatedElement
Represents a property, such as a named val
or var
declaration. Instances of this class are obtainable by the ::
operator.
interface KProperty<out V> : KCallable<V>
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
Represents a property, operations on which take one receiver as a parameter.
interface KProperty1<T, out V> : KProperty<V>, (T) -> V
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
Represents a type. Type is usually either a class with optional type arguments, or a type parameter of some declaration, plus nullability.
interface KType
interface KType : KAnnotatedElement
Represents a declaration of a type parameter of a class or a callable. See the Kotlin language documentation for more information.
interface KTypeParameter : KClassifier
Represents a type projection. Type projection is usually the argument to another type in a type usage. For example, in the type Array<out Number>
, out Number
is the covariant projection of the type represented by the class Number
.
data class KTypeProjection
Represents variance applied to a type parameter on the declaration site (declaration-site variance), or to a type in a projection (use-site variance).
enum class KVariance
Visibility is an aspect of a Kotlin declaration regulating where that declaration is accessible in the source code. Visibility can be changed with one of the following modifiers: public
, protected
, internal
, private
.
enum class KVisibility
Makes the annotated annotation class an associated object key.
annotation class AssociatedObjectKey
The experimental marker for associated objects API.
annotation class ExperimentalAssociatedObjects
If T is an @AssociatedObjectKey-annotated annotation class and this class is annotated with @T (S::class
), returns object S
.
fun <T : Annotation> KClass<*>.findAssociatedObject(): Any?
© 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/index.html