proto buffer - java

来源:互联网 发布:个人贷款计算器软件 编辑:程序博客网 时间:2024/05/21 18:05
option java_package = "com.protobuftest.protobuf";option java_outer_classname = "PersonProbuf"; message Person {  required string name = 1;  required int32 id = 2;  optional string email = 3;   enum PhoneType {    MOBILE = 0;    HOME = 1;    WORK = 2;  }   message PhoneNumber {    required string number = 1;    optional PhoneType type = 2 [default = HOME];  }   repeated PhoneNumber phone = 4;   message CountryInfo {          required string name = 1;          required string code = 2;          optional int32 number = 3;  }} message AddressBook {  repeated Person person = 1;}
protoc.exe --java_out=. ./msg.proto
@org.junit.Testpublic void testProBuf() throws InvalidProtocolBufferException{Builder builder = PersonProbuf.Person.newBuilder();builder.setName("test_name");builder.setId(1);builder.setEmail("test@test.com");builder.addPhone(PersonProbuf.Person.PhoneNumber.newBuilder().setNumber("131111111").setType(PersonProbuf.Person.PhoneType.MOBILE));builder.addPhone(PersonProbuf.Person.PhoneNumber.newBuilder().setNumber("011111").setType(PersonProbuf.Person.PhoneType.HOME));Person person = builder.build();byte[] buf = person.toByteArray();Person person2 = PersonProbuf.Person.parseFrom(buf);Assert.assertTrue(person2.getEmail().equals("test@test.com"));Assert.assertTrue(person2.getPhone(0).getNumber().equals("131111111"));Assert.assertEquals(person2.getPhone(1).getNumber(), "011111");}

    <dependency> <groupId>com.google.protobuf</groupId><artifactId>protobuf-java</artifactId> <version>2.4.1</version></dependency>
                                             
0 0
原创粉丝点击