Небольшое изменение объекта буфера протокола Java
Я хочу сделать небольшое изменение, глубоко в дереве объектов буфера протокола Java.
Я могу использовать.getBuilder()
способ создать новый объект, который является клоном старого с некоторыми изменениями.
Когда это делается на глубоком уровне, код становится безобразным:
Quux.Builder quuxBuilder = foo.getBar().getBaz().getQuux().toBuilder()
Baz.Builder bazBuilder = foo.getBar().getBaz().toBuilder()
Bar.Builder barBuilder = foo.getBar().toBuilder()
Foo.Builder fooBuilder = foo.toBuilder()
quuxBuilder.setNewThing(newThing);
bazBuilder.setQuux(quuxBuilder);
barBuilder.setBaz(bazBuilder);
fooBuilder.setBar(barB,uilder);
Foo newFoo = fooBuilder.build();
(Это всего лишь 4 уровня, я обычно имею дело с 5-8 уровнями.)
Есть ли способ лучше?