如何在 Java 中添加未知字段“21”的 FieldMask
How to add FieldMask of unknown field '21' in Java
我将 dialogflow-es 与 Java 库 (v2) 一起使用。
而且我发现 Intent 对象没有“将此 intent 设置为对话结束”的方法。
我发现 'end of conversation' 字段的名称是 21
,值是 1
。
所以,我用 .addPaths("unknown_fields")
创建了 UnknownFieldSet
和 FieldMask
。
但是在更新意图之后,什么都没有改变。
当我从更新意图中删除 .setFieldMask(FieldMask fieldMask)
时,值已更改。
如何将未知字段 21
更改为 FieldMask
?
UnknownFieldSet unknownFieldSet = UnknownFieldSet.newBuilder()
.addField(21, Field.newBuilder().addVarint(1).build())
.build();
FieldMask updateFieldMask = FieldMask.newBuilder()
.addPaths("unknown_fields")
.build();
Intent updateIntent = Intent.newBuilder()
.setName(newIntent.getName())
.setUnknownFields(unknownFieldSet)
.build();
听起来您正在寻找 FieldMaskUtil.merge and FieldMaskUtil.fromFieldNumbers。
如果这不起作用,那么您正在做的事情可能是不可能的 - 使用 FieldMask
而不是直接使用字段编号。
我将 dialogflow-es 与 Java 库 (v2) 一起使用。
而且我发现 Intent 对象没有“将此 intent 设置为对话结束”的方法。
我发现 'end of conversation' 字段的名称是 21
,值是 1
。
所以,我用 .addPaths("unknown_fields")
创建了 UnknownFieldSet
和 FieldMask
。
但是在更新意图之后,什么都没有改变。
当我从更新意图中删除 .setFieldMask(FieldMask fieldMask)
时,值已更改。
如何将未知字段 21
更改为 FieldMask
?
UnknownFieldSet unknownFieldSet = UnknownFieldSet.newBuilder()
.addField(21, Field.newBuilder().addVarint(1).build())
.build();
FieldMask updateFieldMask = FieldMask.newBuilder()
.addPaths("unknown_fields")
.build();
Intent updateIntent = Intent.newBuilder()
.setName(newIntent.getName())
.setUnknownFields(unknownFieldSet)
.build();
听起来您正在寻找 FieldMaskUtil.merge and FieldMaskUtil.fromFieldNumbers。
如果这不起作用,那么您正在做的事情可能是不可能的 - 使用 FieldMask
而不是直接使用字段编号。