2010-12-29 8 views
3

ich eine Protokollpuffer Meldung wie diese haben:erhalten Kamel Namen aus Protokollpufferfeld

message Person { 

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

    } 

Die Java generierte Klasse sieht wie folgt aus:

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_; } 
    ............ 
} 

Wenn Java-Objekt erzeugt wird, verwendet es Kamel Feldname wie lastName, firstName durch Methodenaufruf getLastName() und getFirstName(). Gibt es eine Möglichkeit, den Namen des Kamelfelds zu erhalten? Ich möchte nicht den ursprünglichen Namen des Feldnamens erhalten: last_name, first_name und wandle ihn jedes Mal wieder in den camel-Feldnamen um, Getter und Setter auf meinem Java-Objekt.

+1

Ich bin nicht klar über das, was Sie fragen. Können Sie den Code für das generierte Java-Objekt bereitstellen? – rancidfishbreath

Antwort

2

Kopieren in einer Antwort (daher Wiki, nicht meine Antwort) von Kenton Varda am protobuf list:

Nein, der Kamel-Fall Name überall wird nicht gespeichert. Sie müssen es selbst konstruieren. Wenn die Leistung ein Problem darstellt, speichern Sie die Ergebnisse einfach in einer Karte.