多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
~~~ syntax = "proto3";//版本 option java_outer_classname = "StudentPOJO";//生成的外部类名,同时也是文件名 //protobuf使用message来管理数据 message Student{//会在 StudentPOJO 外部类生成一个内部类Student,它是真正发送的POJO对象 int32 id = 1;//Student类中有一个属性,名字为id,类型为int32(protobuf类型),1表示属性序号,不是值 string name = 2; } ~~~ ## 编译 ``` protoc --java_out=. Student.proto ``` ~~~ syntax = "proto3"; option optimize_for = SPEED;//快速解析 //option java_package = "com.youge.netty.codec2";//指定生成到哪个包下 option java_outer_classname = "MyDataInfo";//外部类名 /** Protobuf 可以使用 message管理其它的message */ message MyMessage{ //定义一个枚举类型 enum DataType{ StudentType = 0;// 在proto3,要求enum的编号从0开始 WorkerType = 1; } //用data_type来标识传的是哪一个枚举类型 DataType data_type = 1; //表示枚举类型最多只能出现其中的一个,节省空间 oneof DataBody{ Student student = 2; Worker worker = 3; } } message Student{ int32 id = 1;//Student类属性 string name = 2; } message Worker{ string name = 1; int32 age = 2; } ~~~