通俗理解: 泛型就是解决 类,接口,方法, 的复用性, 以及对不特定数据类型的支持(类型校验)
1, 泛型方法
T getData
return value;
}
//调用
print(getData(“你好”));
print(getData(2));
print(getData
print(getData
2,泛型类
class PrintClass
List list = new List
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.add(“你好”);
p.add(“Dart”);
p.printInfo();
3,泛型接口
abstract class Cache
getByKey(String key);
void setByKey(String key, T value);
}
class FileCache
@override
getByKey(String key) {
return null;
}
@override
void setByKey(String key, T value) {
print(“这是文件缓存,把key=${key}, value=${value} 写入到了文件中”);
}
}
class MemoryCache
@override
getByKey(String key) {
return null;
}
@override
void setByKey(String key, T value) {
print(“这是内存缓存, 把key=${key}, value=${value} 写入到了内存中”);
}
}
调用:
FileCache
f.setByKey(“index”, “索引值”);
f.setByKey(“index1”, 2); //这是错误写法
MemoryCache