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

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

内容简介: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):文件 | 字段选项介绍》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

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

领域驱动设计

领域驱动设计

埃文斯 / 赵俐、盛海艳、刘霞 / 人民邮电出版社 / 2010-11 / 69.00元

《领域驱动设计:软件核心复杂性应对之道》是领域驱动设计方面的经典之作。全书围绕着设计和开发实践,结合若干真实的项目案例,向读者阐述如何在真实的软件开发中应用领域驱动设计。书中给出了领域驱动设计的系统化方法,并将人们普遍接受的一些最佳实践综合到一起,融入了作者的见解和经验,展现了一些可扩展的设计最佳实践、已验证过的技术以及便于应对复杂领域的软件项目开发的基本原则。《领域驱动设计:软件核心复杂性应对之......一起来看看 《领域驱动设计》 这本书的介绍吧!

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

各进制数互转换器

MD5 加密
MD5 加密

MD5 加密工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具