code: public void pushGenericType (GenericType fieldType) {
  		// Ensure genericTypes and depths capacity.
  		int size = genericTypesSize;
  		if (size + 1 == genericTypes.length) {
  			GenericType[] genericTypesNew = new GenericType[genericTypes.length << 1];
  			System.arraycopy(genericTypes, 0, genericTypesNew, 0, size);
  			genericTypes = genericTypesNew;
  			int[] depthsNew = new int[depths.length << 1];
  			System.arraycopy(depths, 0, depthsNew, 0, size);
  			depths = depthsNew;
  		}
  
  		genericTypesSize = size + 1;
  		genericTypes[size] = fieldType;
  		depths[size] = kryo.getDepth();
  	}
docs: Sets the type that is currently being serialized. Must be balanced by {@link #popGenericType()}. Between those calls, the
  {@link GenericType#getTypeParameters() type parameters} are returned by {@link #nextGenericTypes()} and
  {@link #nextGenericClass()}.