Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有办法让Google协议缓冲区编译器生成的Java类声明它们实现了一个接口?_Java_Protocol Buffers - Fatal编程技术网

有没有办法让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();
}
有没有办法指定这些类都应该声明它们实现了一个接口