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