Deprecated
@Target
(
[AnnotationTarget.CLASS, AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY, AnnotationTarget.ANNOTATION_CLASS, AnnotationTarget.CONSTRUCTOR, AnnotationTarget.PROPERTY_SETTER, AnnotationTarget.PROPERTY_GETTER, AnnotationTarget.TYPEALIAS]
)
annotation
class
Deprecated
(Common source) (Native source)
Marks the annotated declaration as deprecated.
A deprecated API element is not recommended to use, typically because it's being phased out or a better alternative exists.
To help removing deprecated API gradually, the property level could be used. Usually a gradual phase-out goes through the "warning", then "error", then "hidden" or "removed" stages:
- First and by default, DeprecationLevel.WARNING is used to notify API consumers, but not to break their compilation or runtime usages.
- Then, some time later the deprecation level is raised to DeprecationLevel.ERROR , so that no new Kotlin code can be compiled using the deprecated API.
- Finally, the API is either removed entirely, or hidden ( DeprecationLevel.HIDDEN ) from code, so its usages look like unresolved references, while the API remains in the compiled code preserving binary compatibility with previously compiled code.
Constructors
<init>
Marks the annotated declaration as deprecated.
<init>
(
message
:
String
,
replaceWith
:
ReplaceWith
=
ReplaceWith("")
,
level
:
DeprecationLevel
=
DeprecationLevel.WARNING
)
Properties
level
Specifies how the deprecated element usages are reported in code. See the DeprecationLevel enum for the possible values.
val
level
:
DeprecationLevel
message
The message explaining the deprecation and recommending an alternative API to use.
val
message
:
String
replaceWith
If present, specifies a code fragment which should be used as a replacement for the deprecated API usage.
val
replaceWith
:
ReplaceWith
Extension Properties
annotationClass
Returns a KClass instance corresponding to the annotation type of this annotation.
val
<
T
:
Annotation
>
T
.
annotationClass
:
KClass
<
out
T
>