最近在学dart class的构造函数时候出现 这个问题

file
原因是firstName没有初始化,不能为null

解决方案:

1.在String后面加个?

class Person {
  String? firstName ;
  Person.fromJson(Map data) {
    print('in Person');
  }
}

2.使用late关键字

class Person {
  late String firstName ;
  Person.fromJson(Map data) {
    print('in Person');
  }
}

完整代码:

class Person {
  late String firstName ;
  Person.fromJson(Map data) {
    print('in Person');
  }
}

class Employee extends Person {
  // Person does not have a default constructor;
  // you must call super.fromJson(data).
  Employee.fromJson(Map data) : super.fromJson(data) {
    print('in Employee');
  }
}

main() {
  var emp = new Employee.fromJson({});

  // Prints:
  // in Person
  // in Employee
  if (emp is Person) {
    // Type check
    emp.firstName = 'Bob';
  }
  (emp as Person).firstName = 'Bob';
}

参考:https://stackoverflow.com/questions/67034475/non-nullable-instance-field-must-be-initialized

使用yum安装Go(Golang)

使用yum安装Go(Golang) 本来准备直接yum install golang或者yum install go, 执行命名后,发现没有这个包。于是只能先添加源,然后在使用命令行安装了。 Ins...

阅读全文

php使用Carbon获取2个日期之间的日期

<?php use Carbon\CarbonPeriod; $period = CarbonPeriod::create('2018-06-14', '2018-06-20'); // Iterate over the period fore...

阅读全文

php 解决超卖的几种方案(redis锁、mysql悲观锁)

1.创建商品和订单表模拟商品交易操作 fa_goods商品表,stock商品库存,test_order=订单表 2.添加一个测试商品数据(商品数量为150个) 测试并发购买的方法(gol...

阅读全文

欢迎留言