private Object getSet(PBDeserializer deserializer, Type type, Object[] extraParams) { Object set; if (isInterface(extraParams)) { set = getActualTypeObjectWhileInterface(deserializer); } else { set = createSet(type); } int size = 0; try { size = deserializer.scanNaturalInt(); } catch (Exception e) { e.printStackTrace(); } deserializer.addToObjectIndexMap(set, this); Class componentClazz; if (extraParams == null || extraParams.length == 0) { componentClazz = Object.class; } else { componentClazz = (Class) extraParams[0]; } if (componentClazz == Object.class) { // 选择性写入类名(Object) getObjectElement(deserializer, set, size); } else { // 都不写(Generic) getElementWithGerenic(deserializer, set, componentClazz, size); } return set; }