我有这个方法,它在Dart 2中编译没有问题。但是,在运行时,我得到以下错误
输入列表
正如你在代码中看到的,我在
. map()
中创建并返回新的ExChangeRateE对象,然后返回一个rateEntries.toList()
,我希望它是类型List
@override
Future<List<ExchangeRate>> getExchangeRatesAt(DateTime time, Currency baseCurrency) async {
final http.Client client = http.Client();
final String uri = "some uri ...";
return await client
.get(uri)
.then((response) {
var jsonEntries = json.decode(response.body) as Map<String, dynamic>;
var rateJsonEntries = jsonEntries["rates"].entries.toList();
var rateEntries = rateJsonEntries.map((x) {
return new ExchangeRate(x.value.toDouble());
});
return rateEntries.toList(); // WHY IS IT RETURNING A List<dynamic> here?
})
.catchError((e) => print(e))
.whenComplete(() => client.close());
}
然而,如果我把它专门投给汇率,那就好了。
return rateEntries.toList().cast<ExchangeRate>();
最后这个铸造对我来说似乎是多余的,为什么我需要它?
嗯,似乎演员阵容是完全定义类型所必需的。
但是,如果您添加以下任何片段,您可以避免强制转换:
>
给rateJsonEntry
变量正确的类型
列表
不管出于什么原因,这在我的情况下是有效的。
将参数类型添加到
map()
方法中
var rateEntries=rateJsonEntries。地图
本文向大家介绍dart 创建一个新列表,包括了dart 创建一个新列表的使用技巧和注意事项,需要的朋友参考一下 示例 列表可以通过多种方式创建。 推荐的方法是使用List文字: 该List构造可以作为很好: 如果您喜欢更强的键入,还可以通过以下方式之一提供类型参数: 为了创建一个小的可增长列表,该列表为空或包含一些已知的初始值,首选文字形式。对于其他种类的列表,有专门的构造函数: 另请参阅关于集合
本文向大家介绍dart 创建一个新映射,包括了dart 创建一个新映射的使用技巧和注意事项,需要的朋友参考一下 示例 可以通过多种方式创建映射。 使用构造函数,您可以创建一个新的映射,如下所示: 键和值的类型也可以使用泛型定义: 否则,可以使用映射文字创建映射:
我有一个数据框,其中一些单元格包含多个值的列表。我不想在一个单元格中存储多个值,而是希望扩展dataframe,以便列表中的每个项都有自己的行(在所有其他列中都有相同的值)。因此,如果我有: 如何转换为长格式,例如: 索引并不重要,可以将现有列设置为索引,而最终的顺序并不重要。
本文向大家介绍dart 创建一个新的集合,包括了dart 创建一个新的集合的使用技巧和注意事项,需要的朋友参考一下 示例 可以通过构造函数创建集合:
问题内容: 我注意到eclipse最近创建了一个.settings目录,其中包含1个文件,我想知道是否应该将此添加到版本控制中?SVN? 还有,这是新的吗?我已经使用eclipse已有相当长的一段时间了,但从未注意到它。 目录中文件的内容是这样的: 这些设置是否应该在工作区范围内而不是特定于项目? 问题答案: 此文件记录项目特定的设置与工作空间首选项。 我注意到该文件通常是在将常规Java项目转换
当使用Java8流时,获取一个列表、从中创建一个流、处理业务并将其转换回来是很常见的。类似于: 有什么想法吗?