13-泛型方法,泛型类,泛型接口

Catalogue
  1. 1. 参考资料

通俗理解: 泛型就是解决 类,接口,方法, 的复用性, 以及对不特定数据类型的支持(类型校验)

1, 泛型方法
T getData(T value){
return value;
}

//调用
print(getData(“你好”));
print(getData(2));
print(getData(“哈哈哈”));
print(getData(2));

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 = new PrintClass();
p.add(“你好”);
p.add(“Dart”);
p.printInfo();

3,泛型接口

abstract class Cache{
getByKey(String key);
void setByKey(String key, T value);
}

class FileCache implements Cache{
@override
getByKey(String key) {
return null;
}

@override
void setByKey(String key, T value) {
print(“这是文件缓存,把key=${key}, value=${value} 写入到了文件中”);
}
}

class MemoryCache implements Cache{
@override
getByKey(String key) {
return null;
}

@override
void setByKey(String key, T value) {
print(“这是内存缓存, 把key=${key}, value=${value} 写入到了内存中”);
}
}

调用:
FileCache f = new FileCache();
f.setByKey(“index”, “索引值”);
f.setByKey(“index1”, 2); //这是错误写法

MemoryCache m = new MemoryCache();
m.setByKey(“index”, {“name”:”张三”,”age”:20});

参考资料