Proto3.0 使用(java版)

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();
        }


    }
}

你可能感兴趣的:(Proto3.0 使用(java版))