Dart开发之——泛型

一 概述

泛型:把类型明确的工作推迟到创建对象或调用方法的时候

  • 泛型定义
  • 泛型约束及泛型函数

二 泛型定义

2.1 概念

  • 泛型定义:使用<数据类型>
  • 集合中存储的数据类型与定义泛型时要一直,不然会出错

2.2 泛型示例

基本数据类型

1
List<String> list = ["1", "2", "3", "4"];

泛型T

1
2
3
4
5
6
7
8
9
10
main() {
var print1=printData(1);
var print2=printData("1");
print(print1.runtimeType);
print(print2.runtimeType);
}
class printData<T> {
T t;
printData(this.t);
}

三 泛型约束及泛型函数

3.1 说明

  • 泛型约束:又叫泛型受限,使用extends限定,指参数只能取值某个规定类的子类
  • 泛型函数:指函数的参数只能取值某个已知类及其子类

3.2 泛型约束

1
2
3
4
5
6
abstract class Object {}
class Animal extends Object {}
class printClass<T extends Object> {}
main() {
var printC = printClass<Animal>();
}

3.3 泛型函数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
abstract class Object {
var name;
Object(this.name);
}
class Animal extends Object {
Animal(name) : super(name);
}

Object printObj<Object>(Object obj) {
return obj;
}

main() {
Object obj = printObj(Animal("狗"));
print(obj.name);
}