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


    }
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容