背景:私はprotoc
プラグインを作成しています。Javaでprotobufカスタムオプションの価値を得るには?
カスタムいるProtobufオプションは以下で実装されています
syntax = "proto3";
package com.example.proto.options;
import "google/protobuf/descriptor.proto";
option java_multiple_files = true;
option java_outer_classname = "ServerOptionsProto";
option java_package = "com.example.proto.options";
extend google.protobuf.FileOptions {
ServerOptions server = 50621;
}
message ServerOptions {
// Java classname
string name = 1;
}
次の使用例である:
syntax = "proto3";
package com.example.testdata;
import "com/example/proto/options/server.proto";
option java_multiple_files = true;
option java_package = "com.example.testdata.protogen";
option java_outer_classname = "TestDataProto";
option (com.example.proto.options.server).name = "TestData";
がhttps://developers.google.com/protocol-buffers/docs/proto#optionsに従うことをしようと、(Groovyで)以下は動作しません。 :
request.getProtoFileList().stream().filter { proto ->
proto.serviceCount > 0
}.flatMap { proto ->
serverName = proto.getDescriptor().getOptions()?.getExtension(com.example.proto.options.ServerOptionsProto.server)?.name
}
値にアクセスするためのJavaの正しい方法カスタムオプションの?