0
私はJava 8でマップ/ストリームを再生していますが、次のJava 7コードを変換するための簡単な方法はありません。メソッド内のメソッドにアクセスできないようです。中間ステップとして.map()を使用すると、外部変数(「item」)へのアクセスが失われます。何か不足していますか?ストリーム/コレクトを使用してJavaでマップを生成する8
private void test(final Collection<SomeObject> items){
// Java 7
Map<SomeKey, List<SomeObject>> map = Maps.newHashMap();
for (SomeObject item : items){
SomeKey someKey = item.someMethod().getKey();
map.put(someKey,item);
}
// Java 8
Map<SomeKey, List<SomeObject>> map2 =
items.stream().collect(Collectors.groupingBy(item::someMethod::getKey));
}
ありがとうございます!
。正しくないラムダ式 'item - > item.someMethod()。getKey()'を使って、不正なメソッドリファレンス 'item :: someMethod :: getKey'を置き換えてください。 – Holger
@Holgerあなたのコメントで回答を追加しましたが、戻ってそれを追加して、私はそれをupvoteします! – phss