@Override
public void setField(Object obj, Class forClass, Class type) {
synchronized (forClass) { // We don't want to attach simultaneously to the same class.
FastMap typeToField = (FastMap) _fields.get(forClass);
if ((typeToField != null) && typeToField.containsKey(type))
throw new IllegalArgumentException("Field of type " + type + " already attached to class " + forClass);
if (typeToField == null) {
typeToField = new FastMap();
_fields.put(forClass, typeToField);
}