/** * Create a new instance of {@param type}, must have a default constructor */ public <T> T newInstance(Class<T> type) { if (type == lastClass) { return (T) lastFactory.newInstance(); } lastFactory = factories.get(type); lastClass = type; return (T) lastFactory.newInstance(); } }
@Override public void initialize(TypeRef typeRef, SerializerContext context) { fieldSerializers = new Serializer[typeRef.getFields().size()]; for(int i = 0; i < fieldSerializers.length; i++) { fieldSerializers[i] = context.serializer(typeRef.getFields().get(i), this); } instanceFactory = getFactories().get(typeRef.getType()); }