0
我在Java 8映射操作中傳遞函數,Intellij告訴我它可以用lambda表達式替換。但是我沒有看到如何創建一箇中間對象結構。用lambda表達式替換匿名函數
這裏是我做的:
List<DocumentResult> documentResults = objects.getObject().stream()
.map(new Function<ObjectType, DocumentResult>() {
@Override
public DocumentResult apply(ObjectType objectType) {
String[] keys = objectType.getStorageKey().getObjectName().split("/");
DocumentResult result = new DocumentResult(DocCategories.valueByLabel(keys[1]), DocCategoryGroups.valueByLabel(keys[2]), DocSubCategories.valueByLabel(keys[3]), keys[4], keys[5]);
result.setLink(objectType.getTempUrl().getFullUrl());
return result;
}
})
.collect(Collectors.toList());
而我認爲的IntelliJ我怎麼辦:
List<DocumentResult> documentResults = objects.getObject().stream()
.map(object -> object.getStorageKey().getObjectName().split("/"))
.map(tab -> new DocumentResult(DocCategories.valueByLabel(tab[1]), DocCategoryGroups.valueByLabel(tab[2]), DocSubCategories.valueByLabel(tab[3]), tab[4], tab[5]))
.collect(Collectors.toList());
我不知道一個乾淨的方式來獲得objectType.getTempUrl() .getFullUrl()部分我檢索我的匿名函數,有什麼建議嗎?
嗨Bobuns。我並不完全理解你的問題。你說「我能想到IntelliJ建議我做什麼......」該代碼下面的代碼通過Alt + Enter提供了什麼想法,或者是您對建議工具提示的解釋? Kr – jtonic
這是我自己的解釋,實際上它是我原來的代碼之前,我不得不添加此行'result.setLink(objectType.getTempUrl()。getFullUrl());' – bobuns