0
我正在玩Java8中的地圖/流,我沒有看到轉換以下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));
}
謝謝!
我看不出有任何問題映射步驟。用正確的lambda表達式'item - > item.someMethod().getKey()' – Holger
@Holger將錯誤的方法引用'item :: someMethod :: getKey'替換爲您的評論的答案,但感覺自由回來並添加它,我會upvote它! – phss