在 Avro (1.8.0) IDL 中,我可以将 array<string> 生成为 java.util.HashSet 吗?

Myk*_*vis 6 java code-generation idl maven-plugin avro

我正在使用 Avro IDL 生成记录。

将我的 String 类型设置为 String 并将 fieldVisibility 设置为 PRIVATE,使用以下输入:

record MyRecord {
        @java-class("java.util.HashSet")  array<string> flagged;
}
Run Code Online (Sandbox Code Playgroud)

Avro 生成

@SuppressWarnings("all")
@org.apache.avro.specific.AvroGenerated
public class MyRecord extends org.apache.avro.specific.SpecificRecordBase implements org.apache.avro.specific.SpecificRecord {
  private static final long serialVersionUID = -7930925833711109001L;
  public static final org.apache.avro.Schema SCHEMA$ = new org.apache.avro.Schema.Parser().parse("{\"type\":\"record\",\"name\":\"MyRecord\",\"namespace\":\"com.example\",\"fields\":[{\"name\":\"flagged\",\"type\":{\"type\":\"array\",\"items\":{\"type\":\"string\",\"avro.java.string\":\"String\"},\"java-class\":\"java.util.HashSet\"}}]}");
  public static org.apache.avro.Schema getClassSchema() { return SCHEMA$; }
   private java.util.List<java.lang.String> flagged;
Run Code Online (Sandbox Code Playgroud)

我期望:

   private java.util.HashSet<java.lang.String> flagged;
Run Code Online (Sandbox Code Playgroud)

是否可以array使用 Set 语义进行工作?