如何从toString()屏蔽protobuff生成的类中的字段

时间:2016-12-07 14:11:37

标签: java protocol-buffers

我正在使用protobuf版本2.6.1,我在.proto文件中配置了此消息 -

message Login {
    optional string host = 1;
    optional uint32 port = 2;
    optional string user = 3;
    optional string password = 4;
}

如何屏蔽用户和密码字段不被打印到log或toString()?

1 个答案:

答案 0 :(得分:-1)

一种方法是使用' FieldMasks'在Proto 3.0版本中

https://developers.google.com/protocol-buffers/docs/reference/java/com/google/protobuf/util/FieldMaskUtil.html

https://developers.google.com/protocol-buffers/docs/reference/java/com/google/protobuf/FieldMask

阐述,

  1. 将fieldMask定义为:
  2.   

    Login.user      ,Login.password

    1. 创建一条新用户,密码设置为空

    2. 合并源消息和上述新消息以进行打印。在FieldMaskUtil

    3. 中使用此方法
        

      merge(FieldMask掩码,消息源,Message.Builder目的地)