KClass
interface
KClass
<
T
:
Any
>
:
KDeclarationContainer
,
KAnnotatedElement
,
KClassifier
(JVM source) (Native source)
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.
Parameters
Properties
constructors
All constructors declared in this class.
abstract
val
constructors
:
Collection
<
KFunction
<
T
>
>
isAbstract
true
if this class is
abstract
.
abstract
val
isAbstract
:
Boolean
isCompanion
true
if this class is a companion object.
See the
Kotlin language documentation
for more information.
abstract
val
isCompanion
:
Boolean
isData
true
if this class or object has the
data
keyword.
For more information, see
data class
and
data object
in the Kotlin language documentation.
abstract
val
isData
:
Boolean
isFinal
true
if this class is
final
.
abstract
val
isFinal
:
Boolean
isFun
true
if this class is a Kotlin functional interface.
abstract
val
isFun
:
Boolean
isInner
true
if this class is an inner class.
See the
Kotlin language documentation
for more information.
abstract
val
isInner
:
Boolean
isOpen
true
if this class is
open
.
abstract
val
isOpen
:
Boolean
isSealed
true
if this class is
sealed
.
See the
Kotlin language documentation
for more information.
abstract
val
isSealed
:
Boolean
isValue
true
if this class is a value class.
abstract
val
isValue
:
Boolean
members
All functions and properties accessible in this class, including those declared in this class and all of its superclasses. Does not include constructors.
abstract
val
members
:
Collection
<
KCallable
<
*
>
>
nestedClasses
All classes declared inside this class. This includes both inner and static nested classes.
abstract
val
nestedClasses
:
Collection
<
KClass
<
*
>
>
objectInstance
The instance of the object declaration, or
null
if this class is not an object declaration.
abstract
val
objectInstance
:
T
?
qualifiedName
The fully qualified dot-separated name of the class,
or
null
if the class is local or a class of an anonymous object.
abstract
val
qualifiedName
:
String
?
simpleName
The simple name of the class as it was declared in the source code,
or
null
if the class has no name (if, for example, it is a class of an anonymous object).
abstract
val
simpleName
:
String
?
typeParameters
The list of type parameters of this class. This list does not include type parameters of outer classes.
abstract
val
typeParameters
:
List
<
KTypeParameter
>
visibility
Visibility of this class, or
null
if its visibility cannot be represented in Kotlin.
abstract
val
visibility
:
KVisibility
?
Inherited Properties
annotations
Annotations which are present on this element.
abstract
val
annotations
:
List
<
Annotation
>
Functions
equals
Indicates whether some other object is "equal to" this one. Implementations must fulfil the following requirements:
abstract
fun
equals
(
other
:
Any
?
)
:
Boolean
hashCode
Returns a hash code value for the object. The general contract of
hashCode
is:
abstract
fun
hashCode
(
)
:
Int
isInstance
Returns
true
if
value
is an instance of this class on a given platform.
abstract
fun
isInstance
(
value
:
Any
?
)
:
Boolean
Extension Properties
allSuperclasses
All superclasses of this class, including indirect ones, in no particular order. Includes superclasses and superinterfaces of the class, but does not include the class itself. The returned collection does not contain more than one instance of any given class.
val
KClass
<
*
>
.
allSuperclasses
:
Collection
<
KClass
<
*
>
>
allSupertypes
All supertypes of this class, including indirect ones, in no particular order. There is not more than one type in the returned collection that has any given classifier.
val
KClass
<
*
>
.
allSupertypes
:
Collection
<
KType
>
companionObjectInstance
Returns an instance of the companion object of a given class,
or
null
if the class doesn't have a companion object.
val
KClass
<
*
>
.
companionObjectInstance
:
Any
?
declaredFunctions
Returns all functions declared in this class. If this is a Java class, it includes all non-static methods (both extensions and non-extensions) declared in the class and the superclasses, as well as static methods declared in the class.
val
KClass
<
*
>
.
declaredFunctions
:
Collection
<
KFunction
<
*
>
>
declaredMemberExtensionFunctions
Returns extension functions declared in this class.
val
KClass
<
*
>
.
declaredMemberExtensionFunctions
:
Collection
<
KFunction
<
*
>
>
declaredMemberExtensionProperties
Returns extension properties declared in this class.
val
<
T
:
Any
>
KClass
<
T
>
.
declaredMemberExtensionProperties
:
Collection
<
KProperty2
<
T
,
*
,
*
>
>
declaredMemberFunctions
Returns non-extension non-static functions declared in this class.
val
KClass
<
*
>
.
declaredMemberFunctions
:
Collection
<
KFunction
<
*
>
>
declaredMemberProperties
Returns non-extension properties declared in this class.
val
<
T
:
Any
>
KClass
<
T
>
.
declaredMemberProperties
:
Collection
<
KProperty1
<
T
,
*
>
>
declaredMembers
Returns all functions and properties declared in this class. Does not include members declared in supertypes.
val
KClass
<
*
>
.
declaredMembers
:
Collection
<
KCallable
<
*
>
>
defaultType
Returns a type corresponding to the given class with type parameters of that class substituted as the corresponding arguments.
For example, for class
MyMap<K, V>
defaultType
would return the type
MyMap<K, V>
.
functions
Returns all functions declared in this class, including all non-static methods declared in the class and the superclasses, as well as static methods declared in the class.
val
KClass
<
*
>
.
functions
:
Collection
<
KFunction
<
*
>
>
memberExtensionFunctions
Returns extension functions declared in this class and all of its superclasses.
val
KClass
<
*
>
.
memberExtensionFunctions
:
Collection
<
KFunction
<
*
>
>
memberExtensionProperties
Returns extension properties declared in this class and all of its superclasses.
val
<
T
:
Any
>
KClass
<
T
>
.
memberExtensionProperties
:
Collection
<
KProperty2
<
T
,
*
,
*
>
>
memberFunctions
Returns non-extension non-static functions declared in this class and all of its superclasses.
val
KClass
<
*
>
.
memberFunctions
:
Collection
<
KFunction
<
*
>
>
memberProperties
Returns non-extension properties declared in this class and all of its superclasses.
val
<
T
:
Any
>
KClass
<
T
>
.
memberProperties
:
Collection
<
KProperty1
<
T
,
*
>
>
primaryConstructor
Returns the primary constructor of this class, or
null
if this class has no primary constructor.
See the
Kotlin language documentation
for more information.
starProjectedType
Creates an instance of KType with the given classifier, substituting all its type parameters with star projections. The resulting type is not marked as nullable and does not have any annotations.
val
KClassifier
.
starProjectedType
:
KType
staticFunctions
Returns static functions declared in this class.
val
KClass
<
*
>
.
staticFunctions
:
Collection
<
KFunction
<
*
>
>
staticProperties
Returns static properties declared in this class. Only properties representing static fields of Java classes are considered static.
val
KClass
<
*
>
.
staticProperties
:
Collection
<
KProperty0
<
*
>
>
Extension Functions
createInstance
Creates a new instance of the class, calling a constructor which either has no parameters or all parameters of which are optional (see KParameter.isOptional ). If there are no or many such constructors, an exception is thrown.
fun
<
T
:
Any
>
KClass
<
T
>
.
createInstance
(
)
:
T
createType
Creates a KType instance with the given classifier, type arguments, nullability and annotations. If the number of passed type arguments is not equal to the total number of type parameters of a classifier, an exception is thrown. If any of the arguments does not satisfy the bounds of the corresponding type parameter, an exception is thrown.
fun
KClassifier
.
createType
(
arguments
:
List
<
KTypeProjection
>
=
emptyList()
,
nullable
:
Boolean
=
false
,
annotations
:
List
<
Annotation
>
=
emptyList()
)
:
KType
findAnnotation
Returns an annotation of the given type on this element.
fun
<
T
:
Annotation
>
KAnnotatedElement
.
findAnnotation
(
)
:
T
?
findAnnotations
Returns all annotations of the given type on this element, including individually applied annotations as well as repeated annotations.
fun
<
T
:
Annotation
>
KAnnotatedElement
.
findAnnotations
(
)
:
List
<
T
>
fun
<
T
:
Annotation
>
KAnnotatedElement
.
findAnnotations
(
klass
:
KClass
<
T
>
)
:
List
<
T
>
hasAnnotation
Returns true if this element is annotated with an annotation of type T .
fun
<
T
:
Annotation
>
KAnnotatedElement
.
hasAnnotation
(
)
:
Boolean