shadows/framework/src/main/java/org/robolectric/shadows/ShadowParcel.java
private <T> T readPrimitive(int defaultSizeBytes, T defaultValue, Class<T> clazz) {
      // Check for zeroes first, since partially-overwritten values are not an error for zeroes.
      if (readZeroes(defaultSizeBytes)) {
        return defaultValue;
      }
      return readValue(defaultValue, clazz, /* allowNull= */ false);
    }
private <T> T readPrimitive(int defaultSizeBytes, T defaultValue, Class<T> clazz) {
      // Check for zeroes first, since partially-overwritten values are not an error for zeroes.
      if (readZeroes(defaultSizeBytes)) {
        return defaultValue;
      }
      return readValue(defaultValue, clazz, /* allowNull= */ false);
    }
Reads a primitive, which may reinterpret zeros of other types.

@param defaultSizeBytes if reinterpreting zeros, the number of bytes to consume
@param defaultValue the default value for zeros or reading past the end
@param clazz this is the type that is being read, but not checked in this method