【发布时间】:2017-10-19 09:29:13
【问题描述】:
我想迭代一个对象列表。每个对象都包含一些对象变量。更具体地说:
public class KCenterDocumentMapping {
private DigitalFileCategory digitalFileCategory;
private DocumentType documentType;
private KCenterCategory kCenterCategory;
private KCenterFolder kCenterFolder;
private KCenterDocumentType kCenterDocumentType;
//setters & getters
}
我的清单是:
List<KCenterDocumentMapping> allMappings = db4.retrieveMapping();
所需的地图结构是:
Map<DigitalFileCategory, Map<DocumentType, KCenterDocumentMapping>> kCenterDocumentMappingMap = new HashMap<>();
在我当前的实现中,我收到“无法从静态上下文引用非静态方法”。
Map<DigitalFileCategory, Map<DocumentType,KCenterDocumentMapping>> grouping = kCenterDocumentMappingList.stream()
.collect(Collectors.groupingBy(KCenterDocumentMapping::getDigitalFileCategory,
Collectors.mapping(KCenterDocumentMapping::getDocumentType, this)));
有什么想法吗?
【问题讨论】:
-
不再使用映射,而是再次使用 groupingBy。不需要“这个”。
标签: java lambda java-8 java-stream