public void scramble(PrefabValues prefabValues, TypeTag enclosingType) {
        for (Field field : FieldIterable.of(type)) {
            FieldAccessor accessor = new FieldAccessor(object, field);
            accessor.changeField(prefabValues, enclosingType);
        }
    }
public void scramble ( PrefabValues prefabValues , TypeTag enclosingType ) { for ( Field field : FieldIterable . of ( type ) ) { FieldAccessor accessor = new FieldAccessor ( object , field ) ; accessor . changeField ( prefabValues , enclosingType ) ; } }
Modifies all fields of the wrapped object that are declared in T and in
its superclasses.

This method is consistent: given two equal objects; after scrambling
both objects, they remain equal to each other.

It cannot modifiy:
1. static final fields, and
2. final fields that are initialized to a compile-time constant in the
field declaration.
These fields will be left unmodified.

@param prefabValues Prefabricated values to take values from.
@param enclosingType Describes the type that contains this object as a
field, to determine any generic parameters it may
contain.