dart_generics - ShenYj/ShenYj.github.io GitHub Wiki
泛型及时解决类、接口和方法的复用性,以及对不特定数据类型的支持(类型校验)
-
简单定义一个泛型方法
T getDate<T>(T value) { return value; } getData<String>('你好');
-
定义一个泛型类
class MyList<T> { List list = <T>[]; void add(T value) { this.list.add(value); } List getList() { return list; } } /// 不指定类型 Mylist list = new MyList(); /// 指定类型 Mylist list1 = new MyList<String>();
-
简单实现泛型接口示例
abstract class Cache<T> { getByKey(String key); vlid setByKey(String key, T value); } class FileCache<T> implements Cache<T> { @override getByKey(String key) { return null; } @override void setByKey(String key, T value) { } } class MemoryCache<T> implements Cache<T> { @override getByKey(String key) { return null; } @override void setByKey(String key, T value) { } }