gpt4 book ai didi

java - 从 protobuf 描述符获取默认实例

转载 作者:行者123 更新时间:2023-11-30 02:22:59 25 4
gpt4 key购买 nike

如果我只知道它的描述符,如何获取 protobuf 消息的默认实例:

Descriptor descriptor   = SomeOuterMessage.getDescriptor()
.findNestedTypeByName("InnerMessageName");
Message defaultInstance = descriptor. <???> // how do I get an instance of "InnerMessageName"?

最佳答案

您可以通过 DynamicMessage 获取默认实例类。

假设原型(prototype)如下:

Message PhoneBook {
repeated Person people = 1;
}
Message Person {
required Name name = 1;
optional String phone = 2;
}
Message Name {
required String family_name = 1;
required String given_name = 2;
}

获取 People 默认实例的代码类似于:

PhoneBook phoneBook = phoneBook.getDefaultInstance();
Descriptors.Descriptor personDescriptor = phoneBook.getDescriptor().findNestedTypeByName("people");
DynamicMessage defaultPeopleInstance = DynamicMessage.newBuilder(personDescriptor).getDefaultInstanceForType().build();
assert defaultPeopleInstance == People.getDefaultInstance();

关于java - 从 protobuf 描述符获取默认实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46338188/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com