为什么在Dart的空安全后,List()
构造函数不可访问?
// Compile time error: 'List' is deprecated and shouldn't be used.
// The default 'List' constructor isn't available when null safety is enabled.
// Try using a list literal, 'List.filled' or 'List.generate'.
List<int> foo = List();
然而,您仍然可以执行以下操作:
List<int> foo = []; // No error
那么,这两者之间有什么区别呢?要么两个都显示错误,要么两个都不显示。
List()
也是可增长的。 - iDecodeList<int>
时,我告诉编译器List
和它可能包含的任何元素都必须是非空的。在第一种情况下,我只是创建了一个空列表,并在第二个转换中做了同样的事情,其中一个不被允许,但另一个被允许。这就是问题所在。 - iDecodeList()
构造函数的相关信息:https://github.com/dart-lang/language/issues/746 - julemand101