元数据:主要是描述数据属性(property)的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。
1、@deprecated被弃用的
含义:若某类或某方法加上该注解之后,表示此方法或类不再建议使用,调用时也会出现删除线,但并不代表不能用,只是说,不推荐使用,因为还有更好的方法可以调用。
作用:因为在一个项目中,工程比较大,代码比较多,而在后续开发过程中,可能之前的某个方法实现的并不是很合理,这个时候就要新加一个方法,而之前的方法又不能随便删除,因为可能在别的地方有调用它,所以加上这个注解,就方便以后开发人员的方法调用了。
2、@override 重写父类方法(利用元数据override重写父类方法)
3、@proxy 代理
4、 @required 来标记一个参数,表示这个参数必须要传值。
• 告诉编译器这个参数必须要传值
• 告诉读代码的人,这个参数必须要填写
5、定义自己的元数据
通过library来定义一个库,在库中定义一个相同名字的class,然后在类中定义const 构造方法。
MyHomePage({Key key, @required this.title}) : super(key:key);
//自定义元数据@todo
library todo; //library封装了个todo的库
class todo {
final String who;
final String what;
//和普通实例化类,不一样,前面多了个const
const todo(this.who, this.what);
}
// 使用
import 'todo.dart';
@todo('seth', 'make this do something')
void doSomething() {
print('do something');
}
6、元数据可以修饰以下内容
◦ library(库),
◦ class(类),
◦ typedef(类型定义),
◦ type parameter(类型参数),
◦ constructor(构造函数),
◦ factory(工厂函数),
◦ function(函数),
◦ field(作用域),
◦ parameter(参数),
◦ variable declaration(变量声明)。