dart 中的 runtimeType 问题?

为什么一个是 List<PersonEntity>, 一个是 List<dynamic>

import 'dart:convert';

const jsonString = '''
[
{
  "name": "John Smith",
  "email": "john@example.com"
}
]
''';

class PersonEntity {
  String name;
  String email;

  PersonEntity({this.name, this.email});

  PersonEntity.fromJson(Map<String, dynamic> json) {
    name = json['name'];
    email = json['email'];
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    data['name'] = this.name;
    data['email'] = this.email;
    return data;
  }
}

main() {
  var parsed = json.decode(jsonString) as List;
  var parsed2 = json.decode(jsonString);

  print(parsed
      .map((c) => PersonEntity.fromJson(c))
      .toList()
      .runtimeType); // List<PersonEntity>
  print(parsed2
      .map((c) => PersonEntity.fromJson(c))
      .toList()
      .runtimeType); // List<dynamic>
}
阅读 4.9k
1 个回答
新手上路,请多包涵

为什么!有知道吗

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题