public static @NotNull <C extends Collection<String>> C readStringCollection(@NotNull DataInput in,
                                                                               @NotNull IntFunction<? extends C> collectionGenerator)
    throws IOException {
    int size = DataInputOutputUtil.readINT(in);
    C strings = collectionGenerator.apply(size);
    for (int i = 0; i < size; i++) {
      strings.add(readUTF(in));
    }
    return strings;
  }
public static @NotNull <C extends Collection<String>> C readStringCollection(@NotNull DataInput in,
                                                                               @NotNull IntFunction<? extends C> collectionGenerator)