This commit is contained in:
Redkale
2018-07-26 10:53:35 +08:00
parent 8718bca6e8
commit 0db1c4413c
17 changed files with 33 additions and 22 deletions

View File

@@ -89,8 +89,9 @@ public class ArrayDecoder<T> implements Decodeable<Reader, T[]> {
boolean first = true;
if (len == Reader.SIGN_NOLENGTH) {
int startPosition = in.position();
while (in.hasNext(member, startPosition, contentLength)) {
result.add(readMemberValue(in, member, first));
while (in.hasNext(this, member, startPosition, contentLength)) {
Reader itemReader = getArrayItemReader(in, member, first);
result.add(readMemberValue(itemReader, member, first));
first = false;
}
} else {
@@ -103,6 +104,10 @@ public class ArrayDecoder<T> implements Decodeable<Reader, T[]> {
return result.toArray(rs);
}
protected Reader getArrayItemReader(Reader in, DeMember member, boolean first) {
return in;
}
protected T readMemberValue(Reader in, DeMember member, boolean first) {
return this.decoder.convertFrom(in);
}