PurelyImplements所在位置是kotlin.jvm.PurelyImplements,其相關用法介紹如下。

用法:

@Target([AnnotationTarget.CLASS]) annotation class PurelyImplements

指示 Kotlin 編譯器將帶注釋的 Java 類視為給定 Kotlin 接口的純實現。 "Pure" 在這裏表示類的每個類型參數都成為該接口的非平台類型參數。

例子:

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