- 方法不指定类型,在调用时自定类型,并且有方法校验
- 自定义类不指定类型,在创建类的时候定义类型,运行时非改类型会报错
1.方法泛型
// 需求 我传入什么类型的值,给我返回什么类型的值
T getData<T>(T value) {
return value;
}
getData<String>("x");
getData<int>(123);
2. 自定义类使用泛型
class MyList<T> {
List list = <T>[];
void add(T valse) {
list.add(valse);
}
List getList() {
return list;
}
}
void main() {
//泛型定义普通list
List list = <String>[];
list[0] = "1";
list[1] = "2";
//泛型定义自定义类
MyList mList = MyList(); //如果这么写,就是任意类型
mList.add("1");
mList.add(true);
MyList mList1 = MyList<String>(); //如果这么写,必须穿入String类型
mList1.add("1");
// mList1.add(true); //运行会报错
// mList1.add(2); //运行会报错
runApp(const MyApp());
}