/**
  * 将旧的 serializedObject converter为 新的 serializedObject,如果expectedContentType 和旧的一致,那么直接返回 只是一个确认操作
  *
  * @param serializedObject The object to convert
  * @param expectedContentType The content type of the SerializedObject to return
  * @return a SerializedObject containing data in the expected content type
  */
 @SuppressWarnings("unchecked")
 protected <S, T> SerializedObject<T> ensureCorrectContentType(
     SerializedObject<S> serializedObject, Class<T> expectedContentType) {
   if (!expectedContentType.isAssignableFrom(serializedObject.getContentType())) {
     ContentTypeConverter<S, T> converter =
         converterFactory.getConverter(serializedObject.getContentType(), expectedContentType);
     return converter.convert(serializedObject);
   }
   return (SerializedObject<T>) serializedObject;
 }
 @SuppressWarnings("unchecked")
 @Override
 public <R> SerializedObject<R> serializeMetaData(
     Serializer serializer, Class<R> expectedRepresentation) {
   if (serializer.equals(serializedMetaData.getSerializer())) {
     final SerializedObject serializedObject = serializedMetaData.getSerializedObject();
     return CONVERTER_FACTORY
         .getConverter(serializedObject.getContentType(), expectedRepresentation)
         .convert(serializedObject);
   }
   return serializer.serialize(serializedMetaData.getObject(), expectedRepresentation);
 }