2つのリストを比較しています。Javaでマップ関数を使用して型キャストが機能しない8
List allUserGroups = UserBC.getAllGroupsForUser(userId, deptID);
List<String> confUserGroups= Arrays.asList(configuredSet);
リスト1は、GroupDataエンティティに型キャストする必要があるオブジェクトを返します。 GroupDataには複数のフィールドがあり、フィールド 'id'の1つを比較したい。だから私は、その、再び型キャストを求めp.getId()
ため、
isValuePresent = allUserGroups.stream().map(p -> (GroupData) p).anyMatch(p -> confUserGroups.contains(p.getId()));
問題があり、以下のように型キャストするマップ機能を使用していました。コンパイラは再びキャストを追加するように要求します。誰も私が何かを逃した場合はお勧めします。
EDIT1: IDは、そうでない場合は、私が使用している可能性が長いタイプのものであり((GroupData)p).getId()
EDIT2: ジョープで答えたように、コードを修正しますが、取得同じエラー
エラーメッセージはありますか? –
あなたは 'map'部分をスキップすることができます。 '((GroupData)p).getId()'のキャストを行うだけです。 – jensgram
@jensgram私は自分の質問を編集しました。ここでの問題は 'id'がlong型であり、私は再びcaomparingのためにStringに変換する必要があります。ザッツなぜ私はあなたが一つの追加キャスト '.MAP(のgroupdata ::のgetId).anyMatch(configuredVipUsetGroups ::含まれている)私も、 ' isValuePresent = allUserGroups.streamことを試してみましたが、 ' –