当前位置: 首页 > 知识库问答 >
问题:

试图映射列表时获取不兼容类型时出错

谭俊
2023-03-14

我有一个FeeAccount列表,我想填写。我想使用。stream.map()来完成它。我所做的是创建一个映射列表并返回它的方法。我使用在网上找到的其他一些示例编写了这段代码。我的问题是,不知何故它返回了一个与list不兼容的list。

Method(List<contract> contractList){
 List<FeeAccount> feeAccounts = new ArrayList<>();

    feeAccounts = contractList
            .stream()
            .map(contract -> {

                List<Fee> monthlyFees=...;

                return monthlyFees.stream()
                        .map(monthlyFee -> {
                            FeeAccount account = new FeeAccount();
                            account.setFeeCode(monthlyFee.getFeeCode());
                            account.setDebtorAccount(contract.getDebtorAccount());
                            return account;
                        }).collect(Collectors.toList());
            });}

共有1个答案

安高翰
2023-03-14

您有两个嵌套的map操作。外部将协定转换为列表 ,内部将feeaccount转换为feeaccount

因此,您的管道将生成一个 > 而没有终端操作。

如果最后添加.collect(collectors.tolist()),您将得到一个列表 >

如果要将所有这些内部列表合并到一个输出列表中,应该使用FlatMap

要获得平面列表:

List<FeeAccount> feeAccounts = 
    contractList.stream()
                .flatMap(contract -> {
                    List<Fee> monthlyFees=...;
                    return monthlyFees.stream()
                                      .map(monthlyFee -> {
                                          FeeAccount account = new FeeAccount();
                                          account.setFeeCode(monthlyFee.getFeeCode());
                                          account.setDebtorAccount(contract.getDebtorAccount());
                                          return account;
                                      });
                })
                .collect(Collectors.toList();
 类似资料:
  • 在这个类中,我想整体返回一个arraylist,而不是作为单个元素返回。然而,我在编译时遇到了一个错误,“不兼容类型”。我做错了什么?谢谢你的帮助!!

  • 我想在我的主页上显示我的JSON数据,但我有一个问题。当我运行时,出现一条错误消息“以下类型错误被抛出构建FutureBuilder(脏,状态:_FutureBuilderState#d0e99):”和(错误:类型“List”不是类型“Map”的子类型 下面是我的示例JSON片段(注意:这是本地JSON): 以下是我的餐厅档案: 下面是主页代码:

  • 我对Flutter编程非常陌生,我正在尝试导入一个本地JSON文件,其中包含书籍数据,如标题、作者、发布年份等。 最初我使用JSON-to-DART转换器来组装一个图书数据模型,现在我正在尝试创建一个函数,在该函数中,程序获取本地JSON文件,并使用类中的方法将数据解析为地图。 我遇到的问题是返回类型

  • 我正在尝试从中获取JSONhttps://jsonplaceholder.typicode.com/photos/但获取类似未处理异常的错误:类型“List”不是类型“Map”的子类型 有办法吗? 这是我的代码。 主要的飞奔 影印机。飞奔 image_list.dart 调试控制台: 未处理的异常:类型列表不是类型映射的子类型

  • 因此,我创建了一个应用程序,通过api读取数据,并尝试解析JSON api 这是我的错误截图 我试着把它改成一个列表,但它仍然读取一个错误 这是我的密码大象。飞奔 如何纠正此错误?请帮忙

  • 我试图获得用户信息后,用户输入电子邮件和密码。我使用的api会返回我用户的额外信息,所以我尝试从中获取这些信息。 我试图解析这个json: 这些是我的模型: 这是我发送电子邮件、密码和获取用户数据的部分: 这是给我错误的部分 我打印了响应体,它给出了我想要的字符串,但是jsonDecode返回了一个列表,所以我不能使用它。我怎样才能解决这个问题?提前谢谢。