Construir um esquema Avro com uma lista de nomes de campo e o mesmo esquema

at1ll3y:

im tendo problemas para encontrar uma solução para o meu problema.

Eu preciso chamar o método de campo entre o struct () e os de construção () método x vezes para criar um novo objeto. É um padrão construtor.

Schema people = SchemaBuilder.struct()
                .field("NAME", Schema.STRING_SCHEMA)
                .field("SURNAME", Schema.STRING_SCHEMA)
                .field("CITY", Schema.STRING_SCHEMA)
                .build();

Mas no meu caso, os campos do esquema pessoas não estão definidos desde o início. Eles precisam ser variável. Eu preciso de algo como:

String[] values = {"NAME", "SURNAME", "CITY", "FIELD4", "FIELD5", .....};

Schema people = SchemaBuilder.struct()
          .xTimes.field(values[x], Schema.STRING_SCHEMA))
          .build();

Olhei para Córregos e lambdas mas nunca trabalhou com eles e não tenho certeza se aqueles poderia ser uma solução para este caso. Eu não pode interromper os métodos. Eles todos precisam ser chamados em uma só linha. É o que eu estou tentando fazer mesmo possível e se sim, como?

obrigado

EDIT: Isto é o que eu tentei, mas não funcionou:

public Schema buildSchema(String... fields){
  sch1 = SchemaBuilder.struct();
  for (int i = 0; i < fields.length; i++) {
    sch1 =SchemaBuilder.struct().field(fields[i], Schema.STRING_SCHEMA);
  }
  return sch1;
}

Isso funciona perfeitamente bem, mas não se encaixa as minhas necessidades:

public Schema buildSchema(){
  Schema sch1 = SchemaBuilder.struct()
    .field("foo", Schema.STRING_SCHEMA)
    .field("bar", Schema.STRING_SCHEMA)
    .field("duck", Schema.STRING_SCHEMA)
    .build();
  return sch1
}
Tubarão :
String[] values = {"NAME", "SURNAME", "CITY", "FIELD4", "FIELD5", .....};

SchemaBuilder builder = SchemaBuilder.struct();
for (int i = 0; i < values.length; i++) {
    builder = builder.field(values[i], Schema.STRING_SCHEMA)
}
Schema people = builder.build();

como bout algo assim?

Acho que você gosta

Origin http://43.154.161.224:23101/article/api/json?id=277982&siteId=1
Recomendado
Clasificación