Spec-Zone.ru › Kotlin 1.6

PurelyImplements

kotlin-stdlib / kotlin.jvm / PurelyImplements
Требования к платформе и версии: JVM (1.0)
@Target([AnnotationTarget.CLASS]) annotation class PurelyImplements

Инструктирует компилятор Kotlin обрабатывать аннотированный Java-класс как чистое реализацию данного Kotlin-интерфейса. «Чистое» означает здесь, что каждый параметр типа класса становится неплатформенным аргументом типа этого интерфейса.

Пример:

class MyList<T> extends AbstractList<T> { ... }

Методы, определённые в MyList<T> используют T в качестве платформы, т.е. в Kotlin возможно выполнение небезопасных операций:

MyList<Int>().add(null) // compiles
@PurelyImplements("kotlin.collections.MutableList")
class MyPureList<T> extends AbstractList<T> { ... }

Методы, определённые в MyPureList<T> и переопределяющие методы в MutableList используют T в качестве типов, не являющихся платформенными:

MyPureList<Int>().add(null) // Error
MyPureList<Int?>().add(null) // Ok

Конструкторы

Требования к платформе и версии: JVM (1.0)

<init>

Инструктирует компилятор Kotlin обрабатывать аннотированный Java-класс как чистое реализацию данного Kotlin-интерфейса. «Чистое» означает здесь, что каждый параметр типа класса становится неплатформенным аргументом типа этого интерфейса.

PurelyImplements(value: String)

Свойства

Требования к платформе и версии: JVM (1.0)

value

val value: String

Расширяемые свойства

Требования к платформе и версии: JVM (1.0)

annotationClass

Возвращает экземпляр KClass, соответствующий типу аннотации этой аннотации.

val <T : Annotation> T.annotationClass: KClass<out T>

© 2010–2022 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.jvm/-purely-implements/index.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API