对Java协议进行小的更改缓冲区对象
发布时间:2020-12-14 16:47:19 所属栏目:Java 来源:网络整理
导读:我想做一个小的变化,深入 Java协议缓冲对象的树. 我可以使用.getBuilder()方法来创建一个新对象,该对象是一个具有一些更改的旧对象. 当这样做在深层次时,代码变得丑陋: Quux.Builder quuxBuilder = foo.getBar().getBaz().getQuux().toBuilder()Baz.Builder
我想做一个小的变化,深入
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(barBuilder); Foo newFoo = fooBuilder.build(); (这只是4级,我常常处理5-8级) 有没有更好的办法? 解决方法
另一个选择是(我想,已经有一段时间了)
Foo.Builder fooBuilder = foo.toBuilder(); fooBuilder.getBarBuilder().getBazBuilder().getQuuxBuilder() .setNewThing(newThing); newFoo = fooBuilder.build(); 请注意,这不是更有效率;你还在复制foo,bar,baz和quux. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |