组合两个二进制对象

Composing two binary objects

我有两个 BinaryObject

BinaryObject bo1;
BinaryObject bo2;

有没有办法组合这两个二进制对象。我的意思是将 bo1bo2 中的所有字段添加到 bo2 中不存在的字段?我试过了

bo1.toBuilder();
bo2.toBuilder();

但我没有找到一种方法将这些构建器组合成我需要的构建器。问题是我不知道这些对象中的字段。

实际上我有缓存 BinaryObjects 作为值。我正在写 StreamReceiver 以按照我上面指定的方式更新它的值。这样我就必须实现以下方法:

@Override
public void receive(IgniteCache<String, BinaryObject> cache, Collection<Map.Entry<String, BinaryObject>> entries) throws IgniteException {
    BinaryObject objOld = cache.get(entry.getKey());      
    BinaryObjectBuilder previous = objOld.toBuilder();
    BinaryObject objNew = entry.getValue();
    BinaryObjectBuilder current = objNew.toBuilder();
    //...
}

没有单行的。但是您可以从要合并到的对象创建一个构建器,然后在第二个对象上使用 BinaryObject.type().fieldNames() 来获取它包含的字段列表。然后遍历这些字段并将值附加到构建器。