首页 > 解决方案 > Flutter Dart 中泛型的使用

问题描述

有人可以解释一下的用法<MyApp>吗?

MyAppState 是 State 类的扩展,但 MyApp 是什么?

我知道 php 中的 OOP,但无法理解这一点。

class MyApp extends StatefulWidget{
  @override
  MyAppState createState() => new MyAppState();
}


class MyAppState extends State<MyApp>{
  @override
  Widget build(BuildContext context) {
    return new Scaffold(...);
  }
}

标签: dartflutter

解决方案


永远记住,State<T>类是作为泛型类实现的

当您扩展任何泛型类时,您必须为其指定类型,这恰好是您的静态小部件具体实现,其名称是MyApp

对于StatfulWidget类的每个具体实现,您需要定义扩展类的另一个具体实现,State<MyApp>它的名称是MyAppState 因为State<T>是一个泛型类,我们将其编码为State<MyApp>

所以回答你的问题

MyApp是StatefulWidget类的具体实现的名称

StatefulWidget -----> 类不是通用的

MyApp -------------> StatefulWidget 类的具体实现

状态-----------> 泛型类

MyAppState --> State 的具体实现

希望有帮助..


推荐阅读