2013-04-21 7 views

risposta

3

che non è gli usi previsti di la Biblioteca; dovresti impostare i valori nella fase del builder, quindi creare il DTO immutabile dal builder. Se vuoi valori diversi: cambia il valore nel builder e rigenera il DTO.

In alternativa, si noti che esistono più librerie che forniscono supporto per la specifica del filo protobuf. Il "protostuff" IIRC funziona con oggetti POJO mutabili.

2

mia comprensione è che non si può fare questo con lo strumento ProtoC standard ed il plugin generatore standard.

AFAIK, l'unica opzione è scrivere il proprio generatore (o modificare quello esistente) per fare ciò di cui si ha bisogno.

In alternativa, è possibile utilizzare trucchi di riflessione "cattivi" per raggiungere gli oggetti e modificare lo stato in questo modo.

(Perché si sente che è necessario modificare i valori dei campi dopo la creazione di oggetti? Non puoi semplicemente modificare il valore del campo nel generatore e chiamare build di nuovo?)

2

È possibile utilizzare semplicemente i builder ovunque in cui si desidera che gli oggetti siano mutabili. Hanno sia getter e setter.

+1

Non ci avevo mai pensato, anche dopo un paio d'anni di lavoro con protobuf Java e protobuf C++ e lamentarmi delle differenze filosofiche tra loro. –