当前位置: 首页 > news >正文

Flutter 泛型 泛型方法 泛型类 泛型接口

目录

泛型简单使用

泛型类的简单使用

泛型接口的使用


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

泛型简单使用

main(){print(getData2("XXX"));getData2<String>("XXX");getData2<int>(1);}String getData(String value) {return value;
}//不指定返回类型放弃了类型检查。我们现在想实现的是传入什么 返回什么。
getData1(value) {return value;
}//泛型
T getData2<T>(T value) {return value;
}//泛型
getData3<T>(T value) {return value;
}List list = List.filled(2, "");list[0] = "张三";list[1] = "李四";print(list);List list1 = List<String>.filled(2, "");list1[0] = "张三";list1[1] = "李四";print(list1);List list2 = List<int>.filled(2, 0);list2[0] = 1;list2[1] = 2;print(list2);

泛型类的简单使用

main() {var list3 = MyList();list3.add(1);list3.add(5);print(list3.getList());//可以设置多个类型的数据var list4 = MyList1();list4.add("小飞");list4.add(5);list4.add(true);print(list4.getList());}class MyList {List list = <int>[];void add(int value) {this.list.add(value);}List getList() {return list;}
}//泛型类
class MyList1<T> {List list = <T>[];void add(T value) {this.list.add(value);}List getList() {return list;}
}

泛型接口的使用


/**Dart中的泛型接口:实现数据缓存的功能:有文件缓存、和内缓存。内存缓存和文件缓存按照接口约束实现。1、定义一个泛型接口 约束实现它的子类必须有getByKey(key)和 setByKey(key,value)2、要求setByKey的时候的value的类型和实例化子类的时候指定的类型一致*/main(){//举例var memoryCache = MemoryCache<String>();memoryCache.setBykey("name", "张三");var memoryCache1 = MemoryCache<Map>();memoryCache1.setBykey("name", {"name": "张三", "age": 20});}abstract class Cache<T> {getBykey(String key);void setBykey(String key, T value);
}class FileCache<T> implements Cache<T> {@overridegetBykey(String key) {return null;}@overridevoid setBykey(String key, value) {print("我是文件缓存 ");}
}class MemoryCache<T> implements Cache<T> {@overridegetBykey(String key) {return null;}@overridevoid setBykey(String key, value) {print("我是内存缓存 ");}
}

相关文章:

  • 《原神/星穹铁道私服怎么建?内网穿透+本地调试完整指南》
  • 游戏服务器不加防护能活多久?
  • 《明解C语言入门篇》读书笔记四
  • pytorch写张量pt文件,libtorch读张量pt文件
  • log4cpp 使用指南
  • OpenCV 图形API(66)图像结构分析和形状描述符------将一条直线拟合到三维点集上函数fitLine3D()
  • linux用户管理
  • 什么是 HENGSHI SENSE?
  • 视觉导航中的回环检测技术解析
  • 基于STM32的便携式游戏机开发
  • 工控主板在船舶智能设备中的应用
  • 合理布局结构体,精打细算 cacheline
  • CONVOLUTION MEETS LORA(卷积遇到LORA)
  • 【大模型微调与应用开发实战指南】从理论到工业级部署
  • 【java】lambda表达式总结
  • SALOME源码分析:Geomtry模块
  • Vue响应式数据详解
  • Embedding入门概述
  • 制作一款打飞机游戏27:精灵编辑器UI
  • python文本合并脚本
  • 事关稳就业稳经济,10张海报看懂这场发布会的政策信号
  • 从“网点适老化”到“社区嵌入式”,“金融为老上海模式”如何探索?
  • 铁路上海站五一假期预计发送446万人次,同比增长8.4%
  • 京东美团开打,苦了商家?
  • 三大交易所修订股票上市规则:明确关键少数责任,强化中小股东保障
  • 上海论坛2025年会聚焦创新的时代,9份复旦智库报告亮相