code: public <T> T marshallIntoObject(Class<T> clazz, Map<String, AttributeValue> itemAttributes) {
          T toReturn = null;
          try {
              toReturn = clazz.newInstance();
          } catch ( InstantiationException e ) {
              throw new DynamoDBMappingException("Failed to instantiate new instance of class", e);
          } catch ( IllegalAccessException e ) {
              throw new DynamoDBMappingException("Failed to instantiate new instance of class", e);
          }
  
          if ( itemAttributes == null || itemAttributes.isEmpty() )
              return toReturn;
  
          itemAttributes = untransformAttributes(clazz, itemAttributes);
  
          for ( Method m : reflector.getRelevantGetters(clazz) ) {
              String attributeName = reflector.getAttributeName(m);
              if ( itemAttributes.containsKey(attributeName) ) {
                  setValue(toReturn, m, itemAttributes.get(attributeName));
              }
          }
  
          return toReturn;
      }
docs: Creates and fills in the attributes on an instance of the class given
  with the attributes given.
  <p>
  This is accomplished by looking for getter methods annotated with an
  appropriate annotation, then looking for matching attribute names in the
  item attribute map.
  
  @param clazz
  The class to instantiate and hydrate
  @param itemAttributes
  The set of item attributes, keyed by attribute name.