0

鉴于以下服务:

message Message {
  string content = 1;
}

service EchoService {
  rpc echo (Message) returns (Message) {
    option (google.api.http) = { get: "/echo" };
  }
}

我想从 Java 中读取选项。我的理解是以下代码应该可以工作:

HttpRule rule = Message.getDescriptor()
  .getOptions()
  .getExtension(AnnotationsProto.http)

但是,这不会编译,抱怨无法解决方法的键入问题。

我正在尝试遵循:https ://developers.google.com/protocol-buffers/docs/proto.html#customoptions

所以问题是,我如何从 Java 中读取选项?

4

1 回答 1

0

好吧,这很尴尬,它实际上是一种完全不同的类型。

AnnotationsProto.http使用泛型MethodOptionshttps://developers.google.com/protocol-buffers/docs/reference/java/com/google/protobuf/DescriptorProtos.MethodOptions.html)实现类型

Message.getDescriptor().getOptions().getExtensions()期望一个具有通用性的参数MessageOptionshttps://developers.google.com/protocol-buffers/docs/reference/java/com/google/protobuf/DescriptorProtos.MessageOptions.html

方法选项与消息选项 - 也许我需要深入了解规范...

于 2020-01-19T11:08:02.007 回答