Dart入門系列:
Flutter開發Dart極速入門 (基本類型)
Flutter開發Dart極速入門 (變量)
Flutter開發Dart極速入門 (函數)
Flutter開發Dart極速入門 (操作符與流程控制語句)
Flutter開發Dart極速入門 (異常)
Flutter開發Dart極速入門 (類和對象)
Flutter開發Dart極速入門 (泛型)
Flutter開發Dart極速入門 (Dart異步詳解)
Flutter開發Dart極速入門 (生成器)
Flutter開發Dart極速入門 (庫的使用)
Flutter插件化開發注意事項(Packages與插件化開發)
Flutter在Android原生工程中的內建
文章目錄
- 泛型
-
- 與Java中泛型的差別
- 泛型函數
- 泛型構造函數
- 泛型限制
泛型
與Java中泛型的差別
- Java中泛型是編譯時的, 泛型資訊在運作中是不存在的
- Dart中的泛型是固定化的, 在運作時候也有可以判斷的具體類型
main() { var list = List<String>(); list.add('sdsds'); print('${list.runtimeType}, ${list is List<String>}'); // print: List<String>, true }
泛型函數
main() {
var t = method1('t', 123234);
print('t: $t');
}
// 泛型函數
T method1<T, K>(T t, K k) {
print('t: $t, k: $k');
return t;
}
泛型構造函數
main() {
var clazzN = Name<String>('Elvis');
print('${clazzN.name}');
}
// 泛型構造函數
class Name<T> {
T name;
Name(this.name);
}
泛型限制
main() {
var aFeature = AnimalFeature(Actions());
aFeature.act.doSth();
}
class Actions{
void doSth() {
print('蹦蹦跳跳');
}
}
// 泛型限制
class AnimalFeature<T extends Actions> {
T act;
AnimalFeature(this.act);
}