Package kotlin.reflect

Runtime API for Kotlin reflection

Types

Common
JVM
JS
Native
1.0

KAnnotatedElement

Represents an annotated element and allows to obtain its annotations. See the Kotlin language documentation for more information.

interface KAnnotatedElement

KCallable

Represents a callable entity, such as a function or a property.

Common
1.0
interface KCallable<out R>
JVM
JS
Native
1.0
interface KCallable<out R> : KAnnotatedElement

KClass

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.

Common
1.0
interface KClass<T : Any>
JVM
JS
Native
1.0
interface KClass<T : Any> : 
    KDeclarationContainer,
    KAnnotatedElement,
    KClassifier
Common
JVM
JS
Native
1.1

KClassifier

A classifier is either a class or a type parameter.

interface KClassifier
Common
JVM
JS
Native
1.0

KDeclarationContainer

Represents an entity which may contain declarations of any other entities, such as a class or a package.

interface KDeclarationContainer

KFunction

Represents a function with introspection capabilities.

Common
JVM
JS
1.0
interface KFunction<out R> : KCallable<R>, Function<R>
Native
1.3
interface KFunction<out R> : KCallable<R>
Common
JVM
JS
Native
1.0

KMutableProperty

Represents a property declared as a var.

interface KMutableProperty<R> : KProperty<R>
Common
JVM
JS
Native
1.0

KMutableProperty0

Represents a var-property without any kind of receiver.

interface KMutableProperty0<R> : 
    KProperty0<R>,
    KMutableProperty<R>
Common
JVM
JS
Native
1.0

KMutableProperty1

Represents a var-property, operations on which take one receiver as a parameter.

interface KMutableProperty1<T, R> : 
    KProperty1<T, R>,
    KMutableProperty<R>

KMutableProperty2

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

Common
JVM
JS
1.0
interface KMutableProperty2<D, E, R> : 
    KProperty2<D, E, R>,
    KMutableProperty<R>
Native
1.3
interface KMutableProperty2<T1, T2, R> : 
    KProperty2<T1, T2, R>,
    KMutableProperty<R>
Common
JVM
JS
Native
1.0

KParameter

Represents a parameter passed to a function or a property getter/setter, including this and extension receiver parameters.

interface KParameter : KAnnotatedElement
Common
JVM
JS
Native
1.0

KProperty

Represents a property, such as a named val or var declaration. Instances of this class are obtainable by the :: operator.

interface KProperty<out R> : KCallable<R>
Common
JVM
JS
Native
1.0

KProperty0

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
Common
JVM
JS
Native
1.0

KProperty1

Represents a property, operations on which take one receiver as a parameter.

interface KProperty1<T, out R> : KProperty<R>, (T) -> R

KProperty2

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

Common
JVM
JS
1.0
interface KProperty2<D, E, out R> : KProperty<R>, (D, E) -> R
Native
1.3
interface KProperty2<T1, T2, out R> : 
    KProperty<R>,
    (T1, T2) -> R

KType

Represents a type. Type is usually either a class with optional type arguments, or a type parameter of some declaration, plus nullability.

Common
JVM
JS
1.0
interface KType : KAnnotatedElement
Native
1.3
interface KType
Common
JVM
JS
Native
1.1

KTypeParameter

Represents a declaration of a type parameter of a class or a callable. See the Kotlin language documentation for more information.

interface KTypeParameter : KClassifier
Common
JVM
JS
Native
1.1

KTypeProjection

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
Common
JVM
JS
Native
1.1

KVariance

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
Common
JVM
JS
Native
1.1

KVisibility

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