に設定されている場合、私はGPBメッセージのフィールドを反復処理し、メッセージnullをdoesnotのためvalue
をチェックGoogleのプロトコルバッファは、フィールドが
public void printFields(Person person){
Builder builder = person.toBuilder();
Descriptor descriptor = Person.getDescriptor();
List<FieldDescriptor> fields = descriptor.getFields();
for(FieldDescriptor fd : fields){
Object value = builder.get(fd); //this gives the value
// how to check if this field is set or not
}
}
に設定されているフィールドのリストを見つけるために持っていますチェックメッセージにプリミティブ型が存在する可能性があるので、助けてください。 私は、XXXにデフォルト値または明示的な値があるかどうかを通知するメッセージクラスに対してhasXXX()メソッドを読みましたが、builder/descriptor/fieldDescriptorを使用してこれらを呼び出す方法について説明しました。
'person.hasField(FD)'や 'builder.hasField(FD)'で、既にそれを行うことができます。 [javadoc](https://developers.google.com/protocol-buffers/docs/reference/java/) – gudok