I have a simple Map<String, String>
scanMap and I want to collect and covert it to a map of type of Map<CustomTag, CustomTagType>
.
CustomTag has 2 fields properties - key & value and I want to inject the original map key & value into it. the 2nd CustomTagType is an enum. I want to do something like this:
Map<String, String> scanMap = new HashMap<>();
scanMap.entrySet()
.stream()
.collect(Collectors.toMap(e -> CustomTag.builder().key(e.getKey()).value(e.getValue()).build(),
CustomTagType.SCAN_TAG);
but the e.getKey()
& e.getValue()
get 'cannot resolve method' errors.
What am I missing here?
Both arguments to Collectors.toMap
must be Functions (which are passed an element of the Stream), even if their parameter is unused.
Collectors.toMap(e -> CustomTag.builder().key(e.getKey()).value(e.getValue()).build(),
e -> CustomTagType.SCAN_TAG)