01/10/2018, 16:45
Xin mọi người giúp đỡ về Google Protocol Message trong java
Mình có tham khảo mẫu code trên github. Thấy người ta tạo 1 file
CommonMessage.proto với nội dung:
syntax = "proto3";
option java_package = "protobuf";
message Content {
uint32 msgType = 1;
uint64 sender = 2;
uint64 receiver = 3;
string content = 4;
string receiverId = 5;
}
Trong file CommonMessage.java
private Content(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
super(builder);
}
private Content() {
msgType_ = 0;
sender_ = 0L;
receiver_ = 0L;
content_ = "";
}
@Override
public final com.google.protobuf.UnknownFieldSet
getUnknownFields() {
return this.unknownFields;
}
private Content(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
this();
if (extensionRegistry == null) {
throw new NullPointerException();
}
int mutable_bitField0_ = 0;
com.google.protobuf.UnknownFieldSet.Builder unknownFields =
com.google.protobuf.UnknownFieldSet.newBuilder();
try {
boolean done = false;
while (!done) {
int tag = input.readTag();
switch (tag) {
case 0:
done = true;
break;
default: {
if (!parseUnknownFieldProto3(
input, unknownFields, extensionRegistry, tag)) {
done = true;
}
break;
}
case 8: {
msgType_ = input.readUInt32();
break;
}
case 16: {
sender_ = input.readUInt64();
break;
}
case 24: {
receiver_ = input.readUInt64();
break;
}
case 34: {
String s = input.readStringRequireUtf8();
content_ = s;
break;
}
}
}
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
throw e.setUnfinishedMessage(this);
} catch (java.io.IOException e) {
throw new com.google.protobuf.InvalidProtocolBufferException(
e).setUnfinishedMessage(this);
} finally {
this.unknownFields = unknownFields.build();
makeExtensionsImmutable();
}
}
Vấn đề mình thắc mắc ở đây là các giá trị 8, 16, 24, 34 trong hàm switch case ở đâu mà có vây?. Mình cảm ơn.
Bài liên quan