我无法通过Schema类在Avro中创建递归模式。
即我要这样做:
Schema schema = Schema.createRecord("TypeName", "", "namespace", false);
Schema.Field recursiveField = new Schema.Field("recursiveField", schema, null, NullNode.getInstance());
// Create a parent schema of the same type name and add the recurisve field to this
Schema parentSchema = Schema.createRecord("TypeName", null, "namespace", false);
parentSchema.setFields(Collections.singletonList(recursiveField));
但这不起作用。当我尝试使用parentSchema.toString()时,由于子模式中没有字段,因此它抛出NullPointerException。
我无法通过json执行此操作,因为我还将根据需要动态提取更多字段。
有人可以指出这个缺陷吗?
谢谢。