at1ll3y:
私の問題の解決策を見つける問題を抱えてイム。
私は、新しいオブジェクトを作成するために、構造体()およびビルド()メソッドのx倍の間のフィールドメソッドを呼び出す必要があります。これは、Builderパターンです。
Schema people = SchemaBuilder.struct()
.field("NAME", Schema.STRING_SCHEMA)
.field("SURNAME", Schema.STRING_SCHEMA)
.field("CITY", Schema.STRING_SCHEMA)
.build();
しかし、私の場合には、人々のスキーマのフィールドは、最初から定義されていません。彼らは、変数にする必要があります。私のようなものが必要になります。
String[] values = {"NAME", "SURNAME", "CITY", "FIELD4", "FIELD5", .....};
Schema people = SchemaBuilder.struct()
.xTimes.field(values[x], Schema.STRING_SCHEMA))
.build();
私は、Streamsとラムダに見えたが、彼らと働いたことはないし、それらが、この場合の解決策になることができればわかりません。私は方法を中断することはできません。彼らはすべて一列に呼び出される必要があります。私も可能とそうであれば、どのように何をしようとしていますか?
感謝
編集:これは私が試したが、うまくいかなかったものです:
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;
}
これは完全に正常に動作しますが、私のニーズに適合しません。
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
}
鮫 :
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();
どのようにそのような何かの試合?