Spec-Zone.ru › Kotlin 2

PurelyImplements

kotlin-stdlib/kotlin.jvm/PurelyImplements

Начиная с Kotlin: 1.0

@Target(allowedTargets = [AnnotationTarget.CLASS])
annotation class PurelyImplements(val value: String)

Указывает компилятору 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

Свойства

value

Начиная с Kotlin: 1.0

val value: String

© 2010–2026 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.jvm/-purely-implements/index.html

Spec-Zone.ru

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