La manipulation des valeurs null dans protobuffers

Je suis en train de travailler sur quelque chose qui récupère des données à partir de la base de données et les constructions protobuff message. Compte tenu de la possibilité que les valeurs nulles peuvent être récupérées à partir de la base de données pour certains champs , je vais obtenir Null pointer exception, tout en essayant de construire le protobuff message. Arriver à savoir que null n'est pas pris en charge dans protobuffs le fil http://code.google.com/p/protobuf/issues/detail?id=57, je me demande si le seul autre moyen de gérer les NPE se faire jeter consiste à insérer des contrôles manuels dans le fichier java correspondant à la proto comme ci-dessous!

message ProtoPerson{
    optional string firstName = 1;
    optional string lastName = 2;
    optional string address1 = 3;
}

ProtoPerson.Builder builder = ProtoPerson.Builder.newBuilder();
if (p.getFirstName() != null) builder.setFirstName(p.getFirstName());
if (p.getLastName() != null) builder.setLastName(p.getLastName());
if (p.getAddress1() != null) builder.setAddress1(p.getAddress1());
...

Donc, quelqu'un peut-il préciser si il y a de quelque autre manière efficace de gérer les valeurs nulles durant protobuff construction??

  • Version courte de la même chose: Optional.ofNullable(p.getFirstName()).ifPresent(builder::setFirstName);