PurelyImplements
@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
Конструкторы
<init>
Инструктирует компилятор Kotlin обработать аннотированный Java-класс как чистое реализацию заданного Kotlin-интерфейса. "Чистое" означает здесь, что каждый параметр типа класса становится неплатформенным аргументом типа этого интерфейса.
PurelyImplements(value: String)
Свойства
value
val value: String
© 2010–2020 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