java protobuffer序列化_Protocol Buffer序列化对比Java序列化.

本文介绍了使用Google的Protocol Buffers(Protobuf)作为Java对象序列化的高效替代方案。Protobuf通过定义数据结构的协议文件,能够生成简洁、高效的序列化和反序列化代码,提高数据交换的效率和兼容性。示例展示了如何为`Player`对象定义protobuf消息类型,包括`playerId`、`age`和`name`等字段,并演示了如何在Java中使用这些消息类型进行序列化和反序列化操作。
摘要由CSDN通过智能技术生成

1 //Generated by the protocol buffer compiler. DO NOT EDIT!2 //source: proto/player.proto

3

4 packagecom.proto;5

6 public final classPlayerModule {7 privatePlayerModule() {}8 public static voidregisterAllExtensions(9 com.google.protobuf.ExtensionRegistry registry) {10 }11 public interfacePBPlayerOrBuilder12 extendscom.google.protobuf.MessageOrBuilder {13

14 //required int64 playerId = 1;

15 booleanhasPlayerId();16 longgetPlayerId();17

18 //required int32 age = 2;

19 booleanhasAge();20 intgetAge();21

22 //required string name = 3;

23 booleanhasName();24 String getName();25

26 //repeated int32 skills = 4;

27 java.util.ListgetSkillsList();28 intgetSkillsCount();29 int getSkills(intindex);30 }31 public static final class PBPlayer extends

32 com.google.protobuf.GeneratedMessage33 implementsPBPlayerOrBuilder {34 //Use PBPlayer.newBuilder() to construct.

35 privatePBPlayer(Builder builder) {36 super(builder);37 }38 private PBPlayer(booleannoInit) {}39

40 private static finalPBPlayer defaultInstance;41 public staticPBPlayer getDefaultInstance() {42 returndefaultInstance;43 }44

45 publicPBPlayer getDefaultInstanceForType() {46 returndefaultInstance;47 }48

49 public static finalcom.google.protobuf.Descriptors.Descriptor50 getDescriptor() {51 returncom.proto.PlayerModule.internal_static_PBPlayer_descriptor;52 }53

54 protectedcom.google.protobuf.GeneratedMessage.FieldAccessorTable55 internalGetFieldAccessorTable() {56 returncom.proto.PlayerModule.internal_static_PBPlayer_fieldAccessorTable;57 }58

59 private intbitField0_;60 //required int64 playerId = 1;

61 public static final int PLAYERID_FIELD_NUMBER = 1;62 private longplayerId_;63 public booleanhasPlayerId() {64 return ((bitField0_ & 0x00000001) == 0x00000001);65 }66 public longgetPlayerId() {67 returnplayerId_;68 }69

70 //required int32 age = 2;

71 public static final int AGE_FIELD_NUMBER = 2;72 private intage_;73 public booleanhasAge() {74 return ((bitField0_ & 0x00000002) == 0x00000002);75 }76 public intgetAge() {77 returnage_;78 }79

80 //required string name = 3;

81 public static final int NAME_FIELD_NUMBER = 3;82 privatejava.lang.Object name_;83 public booleanhasName() {84 return ((bitField0_ & 0x00000004) == 0x00000004);85 }86 publicString getName() {87 java.lang.Object ref =name_;88 if (ref instanceofString) {89 return(String) ref;90 } else{91 com.google.protobuf.ByteString bs =

92 (com.google.protobuf.ByteString) ref;93 String s =bs.toStringUtf8();94 if(com.google.protobuf.Internal.isValidUtf8(bs)) {95 name_ =s;96 }97 returns;98 }99 }100 privatecom.google.protobuf.ByteString getNameBytes() {101 java.lang.Object ref =name_;102 if (ref instanceofString) {103 com.google.protobuf.ByteString b =

104 com.google.protobuf.ByteString.copyFromUtf8((String) ref);105 name_ =b;106 returnb;107 } else{108 return(com.google.protobuf.ByteString) ref;109 }110 }111

112 //repeated int32 skills = 4;

113 public static final int SKILLS_FIELD_NUMBER = 4;114 private java.util.Listskills_;115 public java.util.List

116 getSkillsList() {117 returnskills_;118 }119 public intgetSkillsCount() {120 returnskills_.size();121 }122 public int getSkills(intindex) {123 returnskills_.get(index);124 }125

126 private voidinitFields() {127 playerId_ = 0L;128 age_ = 0;129 name_ = "";130 skills_ =java.util.Collections.emptyList();;131 }132 private byte memoizedIsInitialized = -1;133 public final booleanisInitialized() {134 byte isInitialized =memoizedIsInitialized;135 if (isInitialized != -1) return isInitialized == 1;136

137 if (!hasPlayerId()) {138 memoizedIsInitialized = 0;139 return false;140 }141 if (!hasAge()) {142 memoizedIsInitialized = 0;143 return false;144 }145 if (!hasName()) {146 memoizedIsInitialized = 0;147 return false;148 }149 memoizedIsInitialized = 1;150 return true;151 }152

153 public voidwriteTo(com.google.protobuf.CodedOutputStream output)154 throwsjava.io.IOException {155 getSerializedSize();156 if (((bitField0_ & 0x00000001) == 0x00000001)) {157 output.writeInt64(1, playerId_);158 }159 if (((bitField0_ & 0x00000002) == 0x00000002)) {160 output.writeInt32(2, age_);161 }162 if (((bitField0_ & 0x00000004) == 0x00000004)) {163 output.writeBytes(3, getNameBytes());164 }165 for (int i = 0; i < skills_.size(); i++) {166 output.writeInt32(4, skills_.get(i));167 }168 getUnknownFields().writeTo(output);169 }170

171 private int memoizedSerializedSize = -1;172 public intgetSerializedSize() {173 int size =memoizedSerializedSize;174 if (size != -1) returnsize;175

176 size = 0;177 if (((bitField0_ & 0x00000001) == 0x00000001)) {178 size +=com.google.protobuf.CodedOutputStream179 .computeInt64Size(1, playerId_);180 }181 if (((bitField0_ & 0x00000002) == 0x00000002)) {182 size +=com.google.protobuf.CodedOutputStream183 .computeInt32Size(2, age_);184 }185 if (((bitField0_ & 0x00000004) == 0x00000004)) {186 size +=com.google.protobuf.CodedOutputStream187 .computeBytesSize(3, getNameBytes());188 }189 {190 int dataSize = 0;191 for (int i = 0; i < skills_.size(); i++) {192 dataSize +=com.google.protobuf.CodedOutputStream193 .computeInt32SizeNoTag(skills_.get(i));194 }195 size +=dataSize;196 size += 1 *getSkillsList().size();197 }198 size +=getUnknownFields().getSerializedSize();199 memoizedSerializedSize =size;200 returnsize;201 }202

203 private static final long serialVersionUID = 0L;204 @java.lang.Override205 protectedjava.lang.Object writeReplace()206 throwsjava.io.ObjectStreamException {207 return super.writeReplace();208 }209

210 public staticcom.proto.PlayerModule.PBPlayer parseFrom(211 com.google.protobuf.ByteString data)212 throwscom.google.protobuf.InvalidProtocolBufferException {213 returnnewBuilder().mergeFrom(data).buildParsed();214 }215 public staticcom.proto.PlayerModule.PBPlayer parseFrom(216 com.google.protobuf.ByteString data,217 com.google.protobuf.ExtensionRegistryLite extensionRegistry)218 throwscom.google.protobuf.InvalidProtocolBufferException {219 returnnewBuilder().mergeFrom(data, extensionRegistry)220 .buildParsed();221 }222 public static com.proto.PlayerModule.PBPlayer parseFrom(byte[] data)223 throwscom.google.protobuf.InvalidProtocolBuffe

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值