Protocol Buffers 学习(6):文件 | 字段选项介绍

栏目: Java · 发布时间: 7年前

内容简介:Protocol Buffers 学习(6):文件 | 字段选项介绍

.proto 文件中的单独声明可以使用多个选项进行注释。 选项不会更改声明的整体含义,但可能会影响其在特定上下文中的处理方式。 可用选项的完整列表在 google/protobuf/descriptor.proto 中定义。也就是说不同的选项可能只在编译某种语言时才会生效

一些选项是文件级选项,这意味着它们应该写在顶级作用域中,而不是在任何消息,枚举或服务定义内。 一些选项是消息级选项,这意味着它们应该写入消息定义内。 一些选项是字段级选项,这意味着它们应该写在字段定义中。 枚举类型,枚举值,服务类型和服务方式也可以选择选项。 然而,目前没有任何有用的选项

以下是一些最常用的选项:

(文件选项)

  • java_package:这个选项可以在编译成 java 类代码是设置类名
option java_package = "com.example.foo";
  • java_multiple_files:Causes top-level messages, enums, and services to be defined at the package level, rather than inside an outer class named after the .proto file.(有合适的理解请评论留言~)
option java_multiple_files = true;
  • java_outer_classname : 要生成的最外层Java类的类名(因此是文件名)。 如果在 .proto 文件中没有指定明确的 java_outer_classname ,则通过将 .proto 文件名转换为 camel-case 来构造类名称(因此 foo_bar.proto 变为 FooBar.java )。 如果不生成Java代码,则此选项不起作用。
option java_outer_classname = "Ponycopter";
  • optimize_for:可以设置为SPEED,CODE_SIZE或LITE_RUNTIME。 这将影响C ++和Java代码生成器(以及可能的第三方生成器),方法如下:

    • SPEED (default): 高效的方式编译
    • CODE_SIZE:生成的代码类最少,生成的总代码量也小,但是操作速度会变慢
    • LITE_RUNTIME:编译器将会使用一个轻量的库,但是也会少一些功能,一般用在受限的平台上(比如:手机)。编译器仍将像SPEED模式一样生成所有方法的快速实现。 生成的类只会在每个语言中实现MessageLite接口,该接口仅提供完整Message接口的方法的一部分。
option optimize_for = CODE_SIZE;
  • cc_enable_arenas:生成c++代码时开启 arena alloction
  • objc_class_prefix:设置生成的Objective-C代码的前缀

(字段选项)

  • deprecated:标记以后,表示该字段已经弃用,不应该在新代码中使用,未来可能要替换掉
int32 old_field = 6 [deprecated=true];

以上所述就是小编给大家介绍的《Protocol Buffers 学习(6):文件 | 字段选项介绍》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

颠覆暴利

颠覆暴利

曾德超、张志前 / 2015-4-1 / 58

本书从金融人士的视角研究互联网时代的金融创新,全面系统地介绍了我国互联网金融的产生背景及原因,梳理了互联网金融的基本理论,分析了互联网金融的各种业态和运营模式,介绍了互联网企业和金融企业的应对策略。本书还对互联网金融存在的风险和监管进行了研究,对互联网金融未来的发展前景进行了展望。本书是学习研究互联网金融不可多得的一本参考书。一起来看看 《颠覆暴利》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

在线进制转换器
在线进制转换器

各进制数互转换器

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器