Protobuf使用protoc生成的java类, 这个类一旦创建了对象,该对象就是只读的,不能修改它的任何属性,也就是说这个类是只读类。Protobuf使用builder来构建对象,构建过程中为设置对象属性值,设置完后,builder本次任务已经完结了。
据下面的例子来说明一下:
用户类:
public class User {
private String userName;
private int age;
public boolean hasUserName(){
...
}
public boolean hasAge(){
...
}
public String getUserName(){
return userName
}
public int getAge(){
return age;
}
public static Builder newBuilder() {
return new Builder();
}
}
静态内部类,使用User内部类来修改User的字段,而外部其他类没权限直接修改User的字段:
public static class User.Builder {
private String _userName;
private int _age;
public String getUserName(){
return _userName
}
public int getAge(){
return _age;
}
public User.Builder setUserName(String userName){
this._userName = userName;
return this;
}
public User.Builder setAge(int age){
this._age = age;
return this;
}
public User build() {
User user = new User();
user.userName = this._userName;
user.age = this._age;
//清除所有字段
this._userName = null;
this._age = 0;
return user;
}
}
使用这两个类:
User.Builder builder = User.newBuilder();
builder.setUserName(“谢明媚").setAge(24);
User user = builder.build();
builder.setUserName("谢铭");
System.out.println(user.getUserName());
输出结果为:
谢明媚
分享到:
相关推荐
Netty发送protoBuf格式数据 Netty发送protoBuf格式数据 Netty发送protoBuf格式数据 Netty发送protoBuf格式数据
该协议将数据以Protobuf格式封装到传输报文中,通过定义应用层协议和设计数据通信确认机制建立数据传输通道,并引入数据的序列化方法实现报文的传输。 该协议的设计主要考虑了以下几点: 1. 数据结构:Protobuf是...
Protobuf协议,java开发相关资源.包含jar、exe、使用帮助等.
NULL 博文链接:https://tqywork.iteye.com/blog/2394855
将excel表中数据导出成protobuf数据,方便程序中使用,记得配置你的python环境
springboot集成netty,使用protobuf作为数据交换格式,可以用于智能终端云端服务脚手架。
protoc(Protobuf解码解密工具)用于无原始类时反编译数据,结构分析。 Probobuf反序列化工具,2020-07-21实测好用,内含使用示例。 包含proboc.exe
1、以20个浮点类型字段,1百万条记录为测试数据 2、分别对比二进制与ProtoBuf序列化、反序列化、显示速度的耗时对比以及占用空间大小对比 3、在增加压缩功能后再进行序列化、反序列化、显示速度的耗时对比以及占用...
自己实现的protobuf 压缩类,并能序列化反序列化
1.Scripts/Socket/Protobuf:Protobuf源码 2.Scripts/Socket/ProtocalData: 存放*.proto 转换后的 *.cs 协议数据结构文件 3.Scripts/Socket: 其他,Socket相关脚本。 备注:使用的是Protobuf的源码,如果后期有效...
protocolbuffer(以下简称PB)是google 的一种数据交换的格式,它独立于语言,独立于平台。google 提供了多种语言的实现,如:java、c#、c++、javascript、go 、python、ruby和php等,每一种实现都包含了相应语言的...
google protobuf 最新源代码google protobuf 最新源代码google protobuf 最新源代码google protobuf 最新源代码google protobuf 最新源代码google protobuf 最新源代码google protobuf 最新源代码google protobuf ...
This project contains the implementation of Protocol Buffers for Delphi. From the project was implemented limited functionality necessary for a specific project.... version protobuf-delphi-1.1
netty案例,netty4.1中级拓展篇二《Netty使用Protobuf传输数据》源码 https://mp.weixin.qq.com/s?__biz=MzIxMDAwMDAxMw==&mid=2650724807&idx=1&sn=e0d27e61423a8cf0ed7bc0b9663d1ff7&scene=19#wechat_redirect
protocolbuffer (以下简称PB) 是google 的一种数据交换的格式,它独立于语言,独立于平台。google 提供了多种语言的实现,如:java、c#、c++、javascript、go 、python、ruby和php等,每一种实现都包含了相应语言的...
protobufDemo protobuf例程protobufDemo protobuf例程protobufDemo protobuf例程protobufDemo protobuf例程protobufDemo protobuf例程protobufDemo protobuf例程protobufDemo protobuf例程
Springboot集成websocket+protobuf基本Demo,可实现后端与前端数据实时发送与接收,protobuf进行序列化与反序列化
附带proto的调用命令跟测试的proto文档
springboot集成netty,使用protobuf作为数据传输格式,包含心跳检测、断开重连、上传数据、主动推送功能.
protocolbuffer(以下简称PB)是google 的一种数据交换的格式,它独立于语言,独立于平台。google 提供了多种语言的实现,如:java、c#、c++、javascript、go 、python、ruby和php等,每一种实现都包含了相应语言的...