Thanks for your comments.

On further thought, why doesn't the method just read:

    private void emitModifiers(Set<Modifier> modifiers) throws IOException {
      for (Modifier modifier : modifiers) {
        out.append(modifier.toString()).append(' ');
      }
    }

I don't see why any copying is necessary.