一.泛型方法
1.泛型的定义
泛型就是解决 类 接口 方法的复用性、以及对不特定数据类型的支持(类型校验)
T getData<T>(T value){ return value; } //第一个T代表:返回参数的类型; //第二个T代表:传入参数的类型; //第三个T代表:对传入的参数进行校验.
二.泛型类
//<T>代表创建一个泛型类
class PrintClass<T>{
List list=new List<T>();//创建一个泛型的数组
void add(T value){//在数组里面添加泛型的数据
this.list.add(value);
}
void printInfo(){
for(var i=0;i<this.list.length;i++){
print(this.list[i]);
}
}
}
PrintClass p=new PrintClass<String>();//<String>代表传入的值类型只能是String类型
三.泛型接口
3.1.定义接口
//传入一个泛型
abstract class Cache<T>{
getByKey(String key);
void setByKey(String key, T value);
}
3.2.实现接口
class FlieCache<T> implements Cache<T>{
@override
getByKey(String key) {
return null;
}
@override
void setByKey(String key, T value) {
print("我是文件缓存 把key=${key} value=${value}的数据写入到了文件中");
}
}
//注意事项: FlieCache的类也必须指明是泛型<T>.