@Override
  public Object read(@NotNull Object o) {
    assert field.getDeclaringClass().isInstance(o) : "Wrong class: " + o.getClass() + "; should be: " + field.getDeclaringClass();
    try {
      return field.get(o);
    }
    catch (IllegalAccessException e) {
      throw new SerializationException("Reading " + field, e);
    }
  }
@Override
  public Object read(@NotNull Object o)