получить имя верблюда из поля буфера протокола - PullRequest
4 голосов
/ 29 декабря 2010

У меня есть сообщение буфера протокола, подобное этому:

    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 генерируется, он использует имя поля верблюда как lastName, firstName через вызов метода getLastName () и getFirstName (). Есть ли способ вывести название поля верблюда? Я не хочу получать исходное имя поля name: last_name, first_name и преобразовывать его снова в имя поля верблюда каждый раз, когда я хочу сделать Получатель и установщик на моем объекте Java.

1 Ответ

3 голосов
/ 03 января 2011

Копирование ответа (следовательно, вики, а не моего ответа) из Кентона Варды в список protobuf :

Нет, имя случая верблюда нигде не сохраняется,Вам нужно будет построить его самостоятельно.Если производительность является проблемой, просто кэшируйте результаты на карте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...