美文网首页
Protobuf 获取field的类型

Protobuf 获取field的类型

作者: Walk_In_Jar | 来源:发表于2023-08-29 10:52 被阅读0次
message  aa
{
     int32 key = 1 ;
     string Name = 2 ;
}
message bb {
    repeated aa filedaa= 1;
}

在操作message bb时

获取message bb第一个变量

const FieldDescriptor* fieldDescriptor = descriptor_->field(0);

获取fieldDescriptor (filedaa)的类型

if(fieldDescriptor->type() == FieldDescriptor::TYPE_MESSAGE )
{
    //do
}

获取filedaa cpp_type

fieldDescriptor->cpp_type() == FieldDescriptor::CPPTYPE_MESSAGE

获取filedaa名称

fieldDescriptor->name() == "filedaa"

判断filedaa是否是repeated类型、map类型

if(fieldDescriptor->is_repeated()){
    if(fieldDescriptor->is_map())
        {
          //repeated is map
        }
        else
        {
        //not  map
        }
}

获取 filedaa的类型aa

    fieldDescriptor->message_type()
    //验证  
    fieldDescriptor->message_type()->name()=="aa"

查找message aa 是否有字段"key"

 if( fieldDescriptor->message_type()->FindFieldByName("key ") )
{
   //do
}

相关文章

  • 使用mint-field的坑

    如下图: 当存在type类型为textarea的field时,text类型的field点击无法获取焦点输入, 暂时...

  • 反射

    1、获取类类型 Class 三种方法获取类类型 输出结果 1、成员变量 Field 1、getDeclaredFi...

  • 通过反射获取泛型

    获取泛型参数的信息:1、通过Field.getGenericType()方法获取到Type类型(该对象中包含了泛型...

  • scrapy中item的处理技巧

    scrapy中item的处理技巧 Field 的类型 Scrapy中只有一种类型,就是 scrapy.Field(...

  • lucene中Field简介

    Lucene 6.1.0中存在的field种类如下(后缀是Field): 下面介绍几个常用的Field类型: Te...

  • Java判断Field是否是指定类型

    判断Field是否是基本类型: 判断Field是否是指定的类

  • android检测布局文件是否存在

    try{ /** * 根据得到的布局文件名获取该布局的field */ Field f...

  • AspectJ(四) 高级用法--Field

    Field 变量的获取和设置,不能是局部变量 get Field 的值 想获取一个变量Fie...

  • odoo获取fields的描述(string)

    关键代码就是self._fields,这个获取了所有的字段,是一个dict类型的。我采用的是遍历,使用field....

  • Lucene Field类型

    Field是Document的一部分,每个字段有三部分:名字,类型和值。字段的值可以是text(String,Re...

网友评论

      本文标题:Protobuf 获取field的类型

      本文链接:https://www.haomeiwen.com/subject/cqbnmdtx.html