Proto3.0 使用(java版)
安装
在使用原生的google的proto中,需要先安装proto。安装包下载地址: github proto包地址
安装 :
tar -xvf protobuf
cd protobuf
./configure --prefix=/usr/local/protobuf
make
make check
make install
配置环境 :
export PATH=$PATH:/usr/local/protobuf/bin/
使用
编写测试demo.proto
syntax = "proto3";
message demo {
string query = 1;
int32 page_number = 2;
int32 result_per_page = 3;
}
使用上面安装的工具(proto)生成Java实体类, 执行 protoc --java_out=src/main/java/proto src/main/java/proto/demo.proto
会在 src/main/java/proto/
下生成一个 Demo.java
的类。
序列化使用:
public static void main(String[] args) {
Demo.demo demo = Demo.demo.newBuilder()
.setQuery("robin")
.setPageNumber(1)
.setResultPerPage(10)
.build();
byte[] bytes = demo.toByteArray();
for (byte aByte : bytes) {
System.out.print(aByte+", ");
}
}
反序列化使用:
public class Test14 {
public static void main(String[] args) {
byte[] bytes = {10, 5, 114, 111, 98, 105, 110, 16, 1, 24, 10};
try {
Demo.demo demo = Demo.demo.parseFrom(bytes);
System.out.println(demo);
System.out.println("----------");
System.out.println(JsonFormat.printer().print(demo));
} catch (InvalidProtocolBufferException e) {
e.printStackTrace();
}
}
}