Почему Protobuf Any не находится внутри AnyProto.class

Осмотр Протобуфа от Google any.proto ( https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/any.proto), можно увидеть следующую опцию:
option java_outer_classname = "AnyProto";
Почему тогда нет Any.class внутренний класс AnyProto в protobuf-java-x.x.x.jar (Это верно по крайней мере для версий 3.2.0 и 3.6.1)

Контекст:
Причина этого вопроса в том, что я использую avro-protobuf преобразовать сообщение avro в Protobuf, и эта библиотека просматривает FileDescriptor схемы Protobuf, чтобы найти класс Protobuf, который необходимо создать. При поиске файлового дескриптора Any эта библиотека пытается создать экземпляр com.google.protobuf.AnyProto$Anyиз-за java_outer_classname упомянутое выше. И мне кажется, что библиотека поступает правильно. Вот код, использующий эти метаданные для создания экземпляра класса: https://github.com/apache/avro/blob/2bbb99602e9e925058ead86fc8ac4e27055b05d6/lang/java/protobuf/src/main/java/org/apache/avro/protobuf/ProtobufData.java#L225

0 ответов

Другие вопросы по тегам