protobuf java代码生成及实例 左手的ㄟ右手 2022-03-21 05:05 469阅读 0赞 ### 1.下载工具 ### protoc-2.4.1-win32.zip protobuf-java-2.4.1.jar (注意两者的版本要相同,下载地址[https://github.com/protocolbuffers/protobuf][https_github.com_protocolbuffers_protobuf]) ### 2.proto文件的内容 ### syntax = "proto2"; option java_package = "com.netty.protobuf"; option java_outer_classname = "TeacherSerializer"; message Teacher{ required int64 id = 1; required int32 age =2; required string name = 3; } ### 3.根据proto文件生成java文件 ### 解压protoc-2.4.1-win32.zip,将其中的protoc.exe文件和Teacher.proto文件放在同一个文件夹下。 ![20190130190207698.png][] 使用命令生成TeacherSerializer.java文件。 protoc ./Teacher.proto --java_out=./ ### 4.创建java工程 ### 创建java工程Protobuf,将生成的文件TeacherSerializer.java放入工程,并将 protobuf-java-2.4.1.jar作为Referenced Libraries引入到工程中。 ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xpeWF6aGVuMjAxMQ_size_16_color_FFFFFF_t_70][] ### 5.测试代码 ### 创建测试类TestProtobuf,测试自动生成的java文件是否能正常使用。 package com.netty.protobuf; import java.util.Arrays; import com.netty.protobuf.TeacherSerializer.Teacher; import com.netty.protobuf.TeacherSerializer.Teacher.Builder; public class TestProtobuf { public static void main(String[] args) { Builder builder = TeacherSerializer.Teacher.newBuilder(); builder.setId(1L).setAge(22).setName("April"); Teacher t = builder.build(); System.out.println(Arrays.toString(t.toByteArray())); System.out.println("Length = " + t.toByteArray().length); } } 运行结果: [8, 1, 16, 22, 26, 5, 65, 112, 114, 105, 108] Length = 11 [https_github.com_protocolbuffers_protobuf]: https://github.com/protocolbuffers/protobuf [20190130190207698.png]: /images/20220321/fbedd3c971904b1386f9f51081758f0b.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xpeWF6aGVuMjAxMQ_size_16_color_FFFFFF_t_70]: /images/20220321/157db2d4916849f59d0c6702d6c487f8.png
相关 Java动态代码生成示例及挑战 在Java中,动态代码生成通常通过反射API或者一些第三方库如PowerMock等来实现。以下是一个简单的示例: ```java // 创建一个类的实例,然后获取其方法 Cl 落日映苍穹つ/ 2024年09月11日 21:36/ 0 赞/ 11 阅读
相关 php-protobuf扩展和代码生成工具使用 [https://github.com/protocolbuffers/protobuf/releases/tag/v3.5.1][https_github.com_proto 骑猪看日落/ 2022年11月25日 05:22/ 0 赞/ 426 阅读
相关 java代码实现split_java split用法详解及实例代码 java split用法详解及实例代码 发布于 2020-4-8| 复制链接 摘记: public String\[\] split(String regex) 默认li 红太狼/ 2022年11月08日 11:49/ 0 赞/ 177 阅读
相关 java vector实例_Java Vector类详解及实例代码 Java Vector类 Vector的特有功能 Vector出现较早,比集合更早出现 1:添加功能 public void addElement(Object obj 以你之姓@/ 2022年11月07日 05:26/ 0 赞/ 150 阅读
相关 Protobuf 实例(java) 最近项目中需要使用Protobuf作为设备端到云端通信的数据压缩协议,特此记录便于日后查阅。 maven依赖如下: <dependency> <gr 妖狐艹你老母/ 2022年10月12日 04:24/ 0 赞/ 160 阅读
相关 protobuf的Java应用实例 > [Protobuf协议][Protobuf],全称:Protocol Buffer > 它跟JSON,XML一样,是一个规定好的数据传播格式。不过,它的序列化和反序列化 绝地灬酷狼/ 2022年05月22日 04:41/ 0 赞/ 181 阅读
相关 protobuf java代码生成及实例 1.下载工具 protoc-2.4.1-win32.zip protobuf-java-2.4.1.jar (注意两者的版本要相同,下载地址[https 左手的ㄟ右手/ 2022年03月21日 05:05/ 0 赞/ 470 阅读
相关 protobuf序列化实例(Java实现) protobuf是google开源的序列化工具,他支持很多语言。这里介绍如何通过protobuf在java中做序列化。首先,我们需要准备protoc编译环境,这个是前提,我们写 逃离我推掉我的手/ 2021年12月16日 07:23/ 0 赞/ 619 阅读
相关 protobuf (java应用实例) protobuf是Google开源的一种数据传输协议,类似于XML、JSON等技术,优点是protobuf序列化和反序列化的性能非常好,灵活,高效,自动,跨平台,跨语言,... 系统管理员/ 2020年11月16日 10:16/ 0 赞/ 663 阅读
还没有评论,来说两句吧...