我有一个像这样的协议缓冲区消息:
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。
答案 0 :(得分:3)
在protobuf list上从Kenton Varda复制答案(因此wiki,而不是我的答案):
不,驼峰式名称不会存储在任何地方。你需要构建 它自己。如果需要考虑性能,只需将结果缓存到a 地图。