有没有办法让Google协议缓冲区编译器生成的Java类声明它们实现了一个接口?
假设我有一堆消息,所有消息都有一个名称和类型相同的字段:有没有办法让Google协议缓冲区编译器生成的Java类声明它们实现了一个接口?,java,protocol-buffers,Java,Protocol Buffers,假设我有一堆消息,所有消息都有一个名称和类型相同的字段: message Common { string name = 1; int age = 2; } message Foo { Common common = 1; int foo_a = 2; string foo_b = 3; string foo_c = 4; } message Bar { Common common = 1; int bar_x = 2;
message Common {
string name = 1;
int age = 2;
}
message Foo {
Common common = 1;
int foo_a = 2;
string foo_b = 3;
string foo_c = 4;
}
message Bar {
Common common = 1;
int bar_x = 2;
int bar_y = 3;
string bar_z = 4;
}
message Baz {
Common common = 1;
string baz_q = 2;
int baz_r = 3;
string baz_s = 4;
}
在我的Java代码中,我希望能够有一个方法,可以
Foo.Builder
、Bar.Builder
或Baz.Builder
作为参数,以及(有时)
在此提供的生成器上调用setCommon
这三个生成的类已经有了一个兼容的setCommon
方法
签名,所以最简单的方法就是
它们都实现的接口:
interface HasCommonBuilder {
HasCommonBuilder setCommon();
}
有没有办法指定这些类都应该声明它们实现了一个接口