dart - 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(...);
}
}
解决方案
永远记住,State<T>
类是作为泛型类实现的
当您扩展任何泛型类时,您必须为其指定类型,这恰好是您的静态小部件具体实现,其名称是MyApp
对于StatfulWidget
类的每个具体实现,您需要定义扩展类的另一个具体实现,State<MyApp>
它的名称是MyAppState
因为State<T>
是一个泛型类,我们将其编码为State<MyApp>
所以回答你的问题
MyApp是StatefulWidget类的具体实现的名称
StatefulWidget -----> 类不是通用的
MyApp -------------> StatefulWidget 类的具体实现
状态-----------> 泛型类
MyAppState --> State 的具体实现
希望有帮助..
推荐阅读
- mysql - mysql多多关系?
- javascript - 用于时间序列的 JavaScript 可视化库,提供聚合功能
- python - Python While true, Try/Except, 返回值
- python - 一个以相同顺序返回字母列表的函数,除了任何元音显示为 * 和任何 l 显示为 %
- stripe-payments - 需要有关条带集成的建议
- mqtt - 将 mqtt 与 apache nifi 集成
- php - 如何计算从数据库中检索到的逗号分隔值
- javascript - 如何比较 2 个特定于序列匹配的数组值
- reactjs - react-router-native 不起作用
- closedxml - 我们可以克隆 XLWorkbook 对象吗(使用 ClosedXml)