标签: lateinit

dart(flutter)中如何知道late init是否已经初始化?

我正在从 Flutter 中的 url 获取数据。我有一个名为“表”的后期初始化地图。我正在 initState() 函数内获取数据。当我第一次启动该应用程序时,我在红色屏幕上收到 LateInizialization 错误。我想检测 Late init 是否已初始化,如果未初始化则显示微调器。这是我的代码。

class TablesTab extends StatefulWidget {
  @override
  _TablesTabState createState() => _TablesTabState();
}

class _TablesTabState extends State<TablesTab> {
  late List<dynamic> tables;
  var refreshKey = GlobalKey<RefreshIndicatorState>();
  GetUriData tablesInstance = new GetUriData(url: '/api/table/getAllTables');

  void getTables() async {
    tables = await tablesInstance.getData();
  }

  @override
  void initState() {
    super.initState();
    getTables();
  }

  Future<void> refreshList() async {
    refreshKey.currentState?.show(atTop: false);
    // await Future.delayed(Duration(seconds: 2));
    var updatedTables = await tablesInstance.getData();
    setState(() {
      tables = updatedTables;
    });

    //network call …
Run Code Online (Sandbox Code Playgroud)

http dart flutter lateinit

22
推荐指数
2
解决办法
4万
查看次数

C# 不可为空的字段:Lateinit?

我想知道如何在带有可为空引用类型的C# 中使用后期初始化的类字段。想象一下下面的类:

public class PdfCreator { 

   private PdfDoc doc;

   public void Create(FileInfo outputFile) {
       doc = new PdfWriter(outputFile);
       Start();
   }

   public void Create(MemoryStream stream) {
       doc = new PdfWriter(stream);
       Start();
   }

   private void Start() {
      Method1();
      // ...
      MethodN();
   }

   private void Method1() {
      // Work with doc
   }

   // ...

   private void MethodN() {
      // Work with doc
   }
}
Run Code Online (Sandbox Code Playgroud)

上面的代码非常简化。我真正的班级使用了更多的领域,比如doc,还有一些带有一些参数的构造函数。

使用上面的代码,我在构造函数上收到编译器警告,doc未初始化,这是正确的。我可以通过设置docto的类型来解决这个问题PdfDoc?,但是我必须使用?.!.任何它的地方,这很糟糕。

我也可以 …

c# nullable-reference-types lateinit

3
推荐指数
1
解决办法
957
查看次数

标签 统计

lateinit ×2

c# ×1

dart ×1

flutter ×1

http ×1

nullable-reference-types ×1