@Override public void readFields(DataInput in) throws IOException { if (this.refClass == null) { setClass(); } clear(); // clear list before storing values int numValues = in.readInt(); // read number of values ensureCapacity(numValues); for (int i = 0; i < numValues; i++) { M value = ReflectionUtils.newInstance(refClass, conf); value.readFields(in); // read a value add(value); // store it in values } }