从协议缓冲区字段中获取camel名称

时间:2010-12-29 15:58:15

标签: java protocol-buffers

我有一个像这样的协议缓冲区消息:

    message Person {

    optional string last_name = 1; 
    optional string first_name = 2;

    }

java生成的类如下所示:

 public static final class Person extends
      com.google.protobuf.GeneratedMessage {
    // Use Person.newBuilder() to construct.
    ...... constructor stuffs

    // optional string first_name = 1;
    public static final int FIRST_NAME_FIELD_NUMBER = 1;
    private boolean hasFirstName;
    private java.lang.String firstName_ = "";
    public boolean hasFirstName() { return hasFirstName; }
    public java.lang.String getFirstName() { return firstName_; }

    // optional string last_name = 2;
    public static final int LAST_NAME_FIELD_NUMBER = 2;
    private boolean hasLastName;
    private java.lang.String lastName_ = "";
    public boolean hasLastName() { return hasLastName; }
    public java.lang.String getLastName() { return lastName_; }
  ............
}

当生成java对象时,它通过方法调用getLastName()和getFirstName()将camel字段名称用作 lastName,firstName 。有没有办法让骆驼字段名称出来?我不想获取原始字段名称:last_name,first_name并在每次我想要的时候再次将其转换为camel字段名称 我的java对象上的getter和setter。

1 个答案:

答案 0 :(得分:3)

protobuf list上从Kenton Varda复制答案(因此wiki,而不是我的答案):

  

不,驼峰式名称不会存储在任何地方。你需要构建   它自己。如果需要考虑性能,只需将结果缓存到a   地图。