2016-12-07 116 views
0

我使用protobuf的2.6.1版本,從toString()方法中protobuff生成的類字段和我在.proto文件中配置此消息 -如何屏蔽

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

我怎麼能掩蓋用戶名和密碼字段從打印到日誌或toString()?你可以做到這一點

回答

0

一種方式是在原3.0版中使用 'FieldMasks'

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就象這樣:

Login.user ,Login.password

  • 創建具有用戶名和密碼設置爲空

  • 合併源信息和上述新的消息新的信息打印。在FieldMaskUtil

  • 合併(FieldMask面具,消息源,Message.Builder目的地)

    +0

    我相信答案是誤導性的,使用此方法。 FieldMask做相反的事情。它只打印您在FieldMask中指定的內容。這是我問的類似問題(我沒有閱讀FieldMask javadoc :-)也),並期望它掩蓋:https://stackoverflow.com/questions/45355892/how-to-mask-certain-fields-in-protobuf – Harry