美文网首页Flutter开发
Flutter 泛型使用

Flutter 泛型使用

作者: StevenHu_Sir | 来源:发表于2019-11-04 09:28 被阅读0次

List<T> 通用泛型
List<String> 表示在这个定义的List中只能存放字符串类型,如果添加数字类型,代码运行时就会报错

class Animal {}
class Cat extends Animal {}
class Bird extends Animal {}
class NewAnimal<T extends Animal> {
  String toString() => "创建一个新的小动物: 'Foo<$T>'";
}

为何使用泛型

  • 可以是代码的逻辑控制更严谨,有效的对程序进行类型检查
  • 有效减少重复代码
  • 并且在多种类型之间定义同一个接口实现

①不使用泛型

// 不用泛型 存储Object
abstract class ObjectData {
  Object getByKey(String key);
  void setByKey(String key,Object value);
}
// 不用泛型 存储String
abstract class StringData {
  String getByKey(String key);
  void setByKey(String key,String value);
}

②使用泛型

// 使用泛型
abstract class Data<T> {
  T getByKey(String key);
  void setByKey(String key,T value);
}

使用

var cat = NewAnimal<Cat>();
var bird = NewAnimal<Bird>();
// 不传泛型默认为Animal
var animal = NewAnimal();
print('cat${cat}');
print('bird${bird}');
print('animal${animal}');

List<NewAnimal> animals = List<NewAnimal>();
animals.add(cat);
animals.add(bird);
animals.add(animal);
print('animals:${animals}');
// 输出结果
I/flutter (13815): cat创建一个新的小动物: 'Foo<Cat>'
I/flutter (13815): bird创建一个新的小动物: 'Foo<Bird>'
I/flutter (13815): animal创建一个新的小动物: 'Foo<Animal>'
I/flutter (13815): animals:[创建一个新的小动物: 'Foo<Cat>', 创建一个新的小动物: 'Foo<Bird>', 创建一个新的小动物: 'Foo<Animal>']

相关文章

  • Flutter 泛型使用

    List 通用泛型List 表示在这个定义的List中只能存放字符串类型,如果添加数字类型,代码运行时就会...

  • Java 泛型

    导读 移动开发知识体系总章(Java基础、Android、Flutter) 为什么会有泛型? 泛型类 泛型方法 泛...

  • Java-API-集合框架(三)-泛型

    泛型的由来和基本使用 泛型的擦除 泛型类的使用 泛型方法的使用 泛型接口 泛型通配符(?) 通配符? 在api中的...

  • 夯实JAVA基础之 - 泛型

    泛型的定义及使用 1. 定义泛型: 2. 类中使用泛型 3. 使用泛型类 4. 使用泛型的优势? 多泛型变量的定义...

  • Java 泛型

    一、泛型使用 1、泛型类 2、泛型函数 二、泛型限定符 1、泛型上限 泛型上限使用 extends 限制 多个限制...

  • Objective-C 泛型 协变 逆变

    为什么要使用泛型 如何使用泛型 限制泛型 协变 逆变 为什么要使用泛型 在使用NSArray, NSSet, NS...

  • Java泛型

    本文介绍的知识点 泛型是什么? 泛型的使用在反射中使用泛型在集合类中使用泛型 关于泛型擦除如何理解?如何避免泛型擦...

  • java基础-day13-泛型

    泛型 1. 泛型 1.1 为什么要使用泛型 1.2 泛型的基本格式 1.3 泛型在方法中使用 1.3 泛型在类内的...

  • 第 29 条:优先考虑泛型

    未使用泛型 使用泛型第一种 使用泛型第二种

  • 四 集合 ——第二节 泛型

    文章目录 1、 泛型概念2、 使用泛型的好处3、 泛型的定义与使用 3、1 定义和使用含有泛型的类3、2 含有泛型...

网友评论

    本文标题:Flutter 泛型使用

    本文链接:https://www.haomeiwen.com/subject/kfyrbctx.html