リストをマップしようとしたときに、互換性のないタイプのエラーを取得

マーティン:

私はいっぱいしたいというFeeAccountリストを持っています。私はそれを成し遂げるために)(.stream.map使用します。私は何を管理していることは私のリストをマッピングし、それを返すメソッドを作ることです。私は私がオンライン発見した他のいくつかの例を使用してこのコードを書いています。私の問題は何とかそれが一覧と互換性のないリストを返すということです。

私はエラーを取得しています:互換性のないタイプを。必要な一覧が、「地図」がストリームに推論されなかった:型変数のインスタンス(複数可)を(S)Rはリストにその結果ストリーム準拠存在します

私が理解したような問題は、私が使用して一部である(Collectors.toList())を収集しかし、私はわかりません。私も明確にどのようなエラーメッセージの意味を理解していません。

たぶん誰かが私が間違ってやっているかを説明できますか?それは.stream.mapですか()?私は前にそれを使ったことがないので。それとも、問題がどこかにあります。

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());
            });}
彼らは次のとおりでした:

あなたは、ネストされた2つの持っているmap動作を制御します。外側の変換contractList<FeeAccount>、および内側変換FeeしますFeeAccount

したがって、あなたのパイプラインは、その結果Stream<List<FeeAccount>>、端末操作なし。

あなたが追加した場合.collect(Collectors.toList())、最後に、あなたが得られますList<List<FeeAccount>>

あなたは単一の出力リストにすべてのそれらの内側のリストをマージしたい場合は、使用する必要がありますflatMap

フラットを取得するにはList

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();

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=227701&siteId=1