简体   繁体   English

如何在 Java 中添加未知字段 '21' 的 FieldMask

[英]How to add FieldMask of unknown field '21' in Java

I'm using dialogflow-es with Java library(v2).我将 dialogflow-es 与 Java 库(v2)一起使用。

And I found that Intent object doesn't have the method of "Set this intent as end of conversation".而且我发现 Intent object 没有“将此意图设置为对话结束”的方法。

I found that field's name of 'end of conversation' is 21 , and value is 1 .我发现“对话结束”字段的名称是21 ,值是1

So, I created the UnknownFieldSet and FieldMask with .addPaths("unknown_fields") .因此,我使用.addPaths("unknown_fields")创建了UnknownFieldSetFieldMask

But after update intent, nothing was changed.但是在更新意图之后,什么都没有改变。

When I remove .setFieldMask(FieldMask fieldMask) from update intent, value was changed.当我从更新意图中删除.setFieldMask(FieldMask fieldMask)时,值已更改。

How can I change unknown field 21 with FieldMask ?如何使用FieldMask更改未知字段21

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();

It sound like you're looking for FieldMaskUtil.merge and FieldMaskUtil.fromFieldNumbers .听起来您正在寻找FieldMaskUtil.mergeFieldMaskUtil.fromFieldNumbers

If that doesn't work, then what you're doing may just be impossible -- to do it with FieldMask instead of with field numbers directly.如果这不起作用,那么您正在做的事情可能是不可能的——使用FieldMask而不是直接使用字段编号。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM