@Override protected void getValue(Object o, BytesOut write) throws IllegalAccessException { Map<?, ?> m = (Map) field.get(o); if (m == null) { write.writeStopBit(-1); return; } write.writeStopBit(m.size()); for (Map.Entry<?, ?> entry : m.entrySet()) { write.writeObject(keyType, entry.getKey()); write.writeObject(valueType, entry.getValue()); } }
@Override protected void getValue(Object o, BytesOut write) throws IllegalAccessException { Collection c = (Collection) field.get(o); if (c == null) { write.writeStopBit(-1); return; } write.writeStopBit(c.size()); if (c.isEmpty()) return; if (c instanceof Random && c instanceof List) { List l = (List) c; for (int i = 0, size = l.size(); i < size; i++) write.writeObject(componentType, l.get(i)); } else { for (Object o2 : c) { write.writeObject(componentType, o2); } } }