gpt4 book ai didi

java - 生成的 Google Protocol Buffer 类有未使用的字段并且超过 2000 行

转载 作者:行者123 更新时间:2023-11-29 05:01:37 27 4
gpt4 key购买 nike

正如标题所说,我想尝试使用 Google protocol buffers,但在从 .proto 文件编译类时遇到了困难。我不确定生成的类应该是什么样子,它包含 2500 行是否正常。

这是 Maven 项目,我包含了以下依赖项:

    <dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
<version>2.6.1</version>
</dependency>

并且 protoc.exe 与 .proto 文件在同一目录中。

我正在关注 google docs 中的示例,但是当我尝试编译 addressbook.proto 时,生成的类有超过 2500 行和未使用的字段,例如:int mutable_bitField0_ = 0;

生成的代码看起来很奇怪,里面有这样的东西:

 com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() {
public com.google.protobuf.ExtensionRegistry assignDescriptors(
com.google.protobuf.Descriptors.FileDescriptor root) {
descriptor = root;
return null;
}

生成的类应该像这样还是我做错了什么?

请注意,使用的 java 版本是 8。

最佳答案

是的,生成的代码非常大而且非常难看。这是生成代码的典型情况。 .proto 文件中的每一个字段声明变成了六个或更多的方法,每个方法都是几行,再加上序列化、解析、清除等代码行。2500 行对于protobuf 生成的代码。

代码生成器不是很智能——它基本上是一堆打印语句——所以它经常会生成丑陋的代码,有时它甚至会生成它最终不会使用的样板。

您真的不需要查看生成的代码。 :)

关于java - 生成的 Google Protocol Buffer 类有未使用的字段并且超过 2000 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31949630/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com