你好这个判断会报错,已经加了空安全适配 ,报这个未被初始化 这个是为啥呢?

来源:5-9 带你揭开Flutter中的面向对象(工厂构造方法)

慕田峪0044676

2022-03-29

图片描述

你好这个判断会报错,已经加了空安全适配 ,报这个未被初始化 这个是为啥呢?我查了一下,dart也不支持像kotlin那样去判断是否被初始化,该怎么办呢。

写回答

2回答

weixin_慕前端4492656

2022-04-23

late关键字修饰的_logger属性,为Logger类型,它是非空类型,只不过延迟到后面某个时间进行初始化赋值。

_logger既然是非空属性,那么代码里出现_logger==null当然会报错。

你可以将Logger类型定义改为Logger?类型,带?的类型表示它修饰的属性可以为null。

0
0

CrazyCodeBoy

2022-03-29

可以参考下下面的写法修改下:

  static HiCache? _instance;

  static HiCache getInstance() {
    if (_instance == null) {
      _instance = HiCache._();
    }
    return _instance!;
  }

0
3
CrazyCodeBoy
嗯,是的。
2022-03-30
共3条回复

Flutter从入门到进阶 实战携程网App 一网打尽核心技术

解锁Flutter开发新姿势,,系统掌握Flutter开发核心技术。

4788 学习 · 3274 问题

查看课程