java 使用 protobuf的示例

1、创建Stndent.proto并加入

syntax = "proto2";

package tutorial;

option java_package = "com.example.tutorial";
option java_outer_classname = "AddressBookProtos";

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 phones = 4;
}

message AddressBook {
  repeated Person people = 1;
}

  2.安装protoc,并添加环境变量,后,执行

protoc -I=Student.proto目录 --java_out=输出的protobuf辅助类存放位置 Student.proto要生成的proto文件

  3、将生成的文件复制到项目中,项目添加2个protobuf的jar包,protobuf-java-3.9.0.jar和protobuf-java-util-3.9.0.jar

  4、编写测试代码

Person person = Person.newBuilder().setEmail("email").setName("name").setId(12)
				.addPhones(0, PhoneNumber.newBuilder().setNumber("phone").build()).build();
		byte[] data = person.toByteArray();
		Person p1 = Person.parseFrom(data);
		System.out.println(p1.getName());
		System.out.println(p1.getEmail());
		System.out.println(p1.getId());
		System.out.println(p1.getPhones(0).getNumber());

  5、运行程序

至此,Protocol buffer的测试代码完成,如果你想深入了解,需要详细了解第一步如何定义一个message

猜你喜欢

转载自www.cnblogs.com/jiecaoge/p/11185416.html