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) {
    
        }
    }
⚠️ **GitHub.com Fallback** ⚠️