Runtime API for Kotlin reflection
Represents an annotated element and allows to obtain its annotations. See the Kotlin language documentation for more information.
Represents a callable entity, such as a function or a property.
interface KCallable<out R>
interface KCallable<out R> : KAnnotatedElement
A classifier is either a class or a type parameter.
Represents an entity which may contain declarations of any other entities, such as a class or a package.
Represents a property declared as a
interface KMutableProperty<R> : KProperty<R>
Represents a parameter passed to a function or a property getter/setter,
this and extension receiver parameters.
interface KParameter : KAnnotatedElement
Represents a property, such as a named
Instances of this class are obtainable by the
interface KProperty<out R> : KCallable<R>
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 R> : KProperty<R>, () -> R
Represents a property, operations on which take one receiver as a parameter.
interface KProperty1<T, out R> : KProperty<R>, (T) -> R
Represents a type. Type is usually either a class with optional type arguments, or a type parameter of some declaration, plus nullability.
interface KType : KAnnotatedElement
Represents a type projection. Type projection is usually the argument to another type in a type usage.
For example, in the type
out Number is the covariant projection of the type represented by the class
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:
enum class KVisibility