diff --git a/src/org/redkale/convert/MapDecoder.java b/src/org/redkale/convert/MapDecoder.java index 500c88dff..cfeb63016 100644 --- a/src/org/redkale/convert/MapDecoder.java +++ b/src/org/redkale/convert/MapDecoder.java @@ -103,9 +103,10 @@ public class MapDecoder implements Decodeable> { if (len == Reader.SIGN_NOLENGTH) { int startPosition = in.position(); while (in.hasNext(startPosition, contentLength)) { - K key = readKeyMember(in, member, first); - in.readBlank(); - V value = readValueMember(in, member, first); + Reader entryReader = getMapEntryReader(in); + K key = readKeyMember(entryReader, member, first); + entryReader.readBlank(); + V value = readValueMember(entryReader, member, first); result.put(key, value); first = false; } @@ -122,6 +123,10 @@ public class MapDecoder implements Decodeable> { return result; } + protected Reader getMapEntryReader(Reader in) { + return in; + } + protected K readKeyMember(Reader in, DeMember member, boolean first) { return keyDecoder.convertFrom(in); }