@SuppressWarnings({"rawtypes", "unchecked"}) public Converter<Object> create(Type forType, Genson genson) { if (forType instanceof GenericArrayType || (forType instanceof Class<?> && ((Class<?>) forType).isArray())) { if (byte.class.equals(getCollectionType(forType))) { return (Converter) ByteArrayConverter.instance; } else { Converter<?> elementConverter = genson.provideConverter(TypeUtil .getCollectionType(forType)); return new ArrayConverter(TypeUtil.getRawClass(TypeUtil .getCollectionType(forType)), elementConverter); } } return null; } }
public Object deserialize(ObjectReader reader, Context ctx) throws Exception { reader.beginArray(); int size = 10; Object array = Array.newInstance(eClass, size); int idx = 0; for (; reader.hasNext(); ) { reader.next(); if (idx >= size) { size = size * 2 + 1; array = expandArray(array, idx, size); } Array.set(array, idx++, elementConverter.deserialize(reader, ctx)); } reader.endArray(); if (idx < size) { array = expandArray(array, idx, idx); } return array; }
public Object deserialize(ObjectReader reader, Context ctx) throws Exception { reader.beginArray(); int size = 10; Object array = Array.newInstance(eClass, size); int idx = 0; for (; reader.hasNext(); ) { reader.next(); if (idx >= size) { size = size * 2 + 1; array = expandArray(array, idx, size); } Array.set(array, idx++, elementConverter.deserialize(reader, ctx)); } reader.endArray(); if (idx < size) { array = expandArray(array, idx, idx); } return array; }
@SuppressWarnings({"rawtypes", "unchecked"}) public Converter<Object> create(Type forType, Genson genson) { if (forType instanceof GenericArrayType || (forType instanceof Class<?> && ((Class<?>) forType).isArray())) { if (byte.class.equals(getCollectionType(forType))) { return (Converter) ByteArrayConverter.instance; } else { Converter<?> elementConverter = genson.provideConverter(TypeUtil .getCollectionType(forType)); return new ArrayConverter(TypeUtil.getRawClass(TypeUtil .getCollectionType(forType)), elementConverter); } } return null; } }