注解@Deprecated('expires when')用于标记某功能已过时、被弃用、不再建议使用。

注解@deprecated是指,直到下一个未指定的正式版之前不建议使用的简写。

@Deprecated的目的是,通知用户应该修改使用了某功能的代码,即使它目前运行正常。

一个过时的功能将在以后的时间被删除,可能是指定的注解的"expires"字段。 这意味着,过时的功能不应该被使用,或者代码使用它时,可能在未来的某个时间点崩溃。 如果代码使用了这些功能,应该重写代码,不使用过时的功能。

已过时的功能应该记录怎样实现相同的效果,让程序员知道怎么去重写代码。

注解@Deprecated适用于库、top-level顶层声明(变量、getters、setters、函数、类、typedefs)、 class-level类级声明(变量、getters、setters、方法、操作或构造函数,无论是否是静态)、 命名可选参数和位置可选参数。

Deprecation具有传递性:

  • 如果库过时,那么所有成员也过时。
  • 如果类过时,那么所有成员也过时。
  • 如果变量过时,那么它的隐式的getter和setter方法也过时。

处理Dart源码的工具会报告提示信息的情况: - 代码导入了一个过时的库 - 代码导出了一个过时的库,或非过时库的一些过时的成员 - 代码静态地使用了一个过时的声明 - 对于对象的静态类型,代码动态地使用带有静态已知类型的对象的一个成员,而成员已过时 - 对于对象的静态类型,代码带参数动态调用方法,而对应的可选参数过时

如果在库、类或方法的内部使用deprecated,那么它本身也是过时的, 对此工具不应该为使用者操心。一个过时的功能估计使用了其他过时的功能。

Constructors

Deprecated(String expires)

创建一个Deprecated注解,并且指定注解的功能过期。

const

Properties

expires String

过时的、预计将被删除的功能的描述

read-only
hashCode int

获取对象的哈希值。

read-only, inherited
runtimeType Type

表示对象的运行时类型。

read-only, inherited

Operators

operator ==(other) bool

相等操作符。

inherited

Methods

noSuchMethod(Invocation invocation) → dynamic

当一个不存在的函数或成员变量被访问时,该函数被调用。

inherited
toString() String

返回一个用来表示对象的字符串。