首页 > 其他分享 >【Protobuf(二)】protobuf3 默认值

【Protobuf(二)】protobuf3 默认值

时间:2022-11-11 16:00:34浏览次数:42  
标签:Protobuf System person message 默认值 protobuf3 string out


/**
* 关于protobuf3 默认值问题
* 首先,pb对象的get方法永远不会有null,如果没有设置,会生成对应的默认值
*
* 如果属性值是一个message,那么pb会为这个属性生成一个hasXXX方法,可以用这个方法判断是否设置了这个属性
* 对于其他属性,比如string,uint32等等,如果没有设置,get出来的将会是空值,比如string就是"",uint32就是0,此时无法区分是没有设置还是设置了默认值,需要业务自行约定,比如传一个"-1"等特殊的值标识
*/
@Test
public void test2() {
Person person = Person.newBuilder()
.build();

System.out.println(person.hasCommonInfo());
System.out.println(person.getAge());
System.out.println(person.getName().length());

/**
* 输出:
* false
* 0
* 0
*/
}

pb定义:

message CommonInfo {
uint64 id = 1;
}

message Person {
CommonInfo commonInfo = 1;
string name = 2;
uint32 age = 3;
}

 

标签:Protobuf,System,person,message,默认值,protobuf3,string,out
From: https://blog.51cto.com/u_15873544/5845118

相关文章

  • 【Protobuf(四)】消息格式
    protobuf是一种平台语言无关的消息序列化协议,相比于传统的json、xml,序列后的空间更小,但是无法自解释,需要结合额外的proto定义文件才能反序列化,当然这样也更安全。下面记录一......
  • 【Protobuf(一)】proto文件的几个参数的含义
    1.package:定义message的包名。包名的含义与平台语言无关,这个package仅仅被用在proto文件中用于区分同名的message类型。可以理解为message全名的前缀,和message名合起来唯一......
  • MYSQL给ID设置默认值为UUID
    MYSQL给ID设置默认值为UUID标签: mysql  id  触发器  默认值      由于mysql并不支持默认值为函数类型,给id设值有两种方式:(1)通过后台在执行插入......
  • 源码路 之 聊聊 Button 默认值引发的坑坑
    LZ-Says:enmmm,希望所有的一切都将会有一个好的结果。虽然菜比一个,但是只要努力了,就会有好的结果~!!!前言Enmmm,今天突然奇想,玩玩shape文件。Enmmm,我想的挺美好的。结果,mmp了。......
  • 流畅的python_不要使用可变类型作为参数默认值
    可变参数作为对象的默认值的时候创建不同的对象(均为默认值)的时候,默认值会具有相同的引用deff(a=[]):a.append(1)returnaprint(f())print(f())print......
  • Google protoBuf
    前言:最近app要做用户行为统计埋点,对数据进行序列化和反序列化实用Google提供的protoBuf,这里也简单的介绍一下protobuf已经更新到3.2.0:查看blog下面资源包依赖:Win7+64位,and......
  • 设置Swagger默认值Example
    1、在实体上给定默认值publicclassInputModel{publicstringUserName{get;set;}="userName";publicstringPassWord{get;set;}="passWord";......
  • unity3d:protobuf .java转.cs
    服务器端定义好protobuf结构,放unity编辑器中生成.cs的结构usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;usingUnityEditor;usingSystem......
  • MySQL的默认值约束(Default),数据库设计必备
    一、默认值约束简介默认值(Default)的完整称呼是默认值约束(DefaultConstraint)。MySQL默认值约束用来指定某列的默认值。例如女性员工较多,性别就可以默认为“女”。如果插入......
  • Win环境安装Protobuf 2.0 版本
    转载请注明出处:安装步骤下载protobuf-2.5.0.zip与protoc-2.5.0-win32.zip下载链接:https://github.com/protocolbuffers/protobuf/releases/tag/v2.5.0将prot......