Purely Implements
Начиная с Kotlin: 1.0
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
© 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