关于代码分析器报错的问题

来源:5-8 带你揭开Flutter中的面向对象(命名构造方法)

慕村0493939

2021-05-21

4.7章视频里出现的代码是

  String _school; //通过下划线来标识私有字段(变量)
  String city;
  String country;
  String name;

会报
The parameter ‘city’ can’t have a value of ‘null’ because of its type, but the implicit default value is ‘null’.
的错,姑且是改成

String? city;

但是下面命名构造方法部分,

Student.cover(Student stu):super(stu.name, stu.age){
    print('命名构造方法');
  }

会报 非null实例字段(_school, country, name)必须初始化,但是视频里没有
这种问题是不是dart的分析器升级之后检查变严格了,那应该怎么解决。

写回答

2回答

CrazyCodeBoy

2021-05-21

Dart 2.12启用了null safety检查,解决此问题的方案主要有两种:

1.将pubspec.yaml中的sdk由>=2.12.0改为>=2.7.0:

environment:
  sdk: ">=2.7.0 <3.0.0"
  #  sdk: ">=2.12.0 <3.0.0"

2.将Dart代码适配下null safety

1
4
慕村0493939
没事我百度到了
2021-05-24
共4条回复

慕村0493939

提问者

2021-05-21

搜了一下,dart在2020年内支持空安全机制,课程代码可能已经旧了,那应该调低dart语法版本还是学高版本语法

空安全是2.12.x版本加进来的,我现在SDK是2.13.0 stable

1
0

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

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

4788 学习 · 3270 问题

查看课程