如何使用来自单个的信息来转换可流动的元素



我有一个 Flowable<Entity> entitiesSingle<Set<Long>> attributeTypesToInclude。我想修改每个entity-删除attributeTypesToInclude中未存在的属性并返回转换后的Flowable<Entity>。如果不是单个,我可以在entities上使用map。我不确定如何使用涉及的Single实现此目的。

EntityAttribute的示例定义:

class Entity {
  List<Attribute> attributes;
}
class Attribute {
  long type;
  String value;
}

我认为flatMapSingle是我想要的。这可能有效:

entities
  .flatMapSingle(entity -> transformEntitySingle(entity, attributesToInclude));
Single<Entity> transformEntitySingle(Entity entity, Single<List<Long>> attributesToInclude) {
  return attributesToInclude
    .map(attrs -> transformEntity(entity, attrs))
}
Entity transformEntity(Entity entity, List<Long> attributes) {
  // Fairly trivial
}

最新更新