if (type instanceof ParameterizedType) {
Type itemType = ((ParameterizedType) type).getActualTypeArguments()[0];
if (itemType == String.class) {
derializer = ArrayListStringDeserializer.instance;
} else {
derializer = new ArrayListTypeDeserializer(clazz, itemType);
}
} else {
derializer = CollectionDeserializer.instance;
}
} else if (Collection.class.isAssignableFrom(clazz)) {