Как я могу создать и использовать поток пар с Akka Streams для java?

Я пытаюсь использовать вариант javadsl Akka streams, и я, кажется, столкнулся с проблемой, когда пытаюсь определить поток, который должен принимать Соединить элементы.

Скажем, например, я определил поток, который принимает входящие строки и связывает их с логическим значением, указывающим, имеет ли строка длину 5 или больше:

final Flow<String, Pair<String, Boolean>, BoxedUnit> stringToPair = Flow
    .of(String.class)
    .map(s -> new Pair<>(s, s.length() >= 5));

Это прекрасно работает. Но следующим шагом для меня является определение потока, который принимает пары строк и логических значений и снова возвращает только строку:

final Flow<Pair<String, Boolean>, String, BoxedUnit> pairToString = Flow
        .of(Pair.class)
        .map(p -> p.first());

Я не уверен, должен ли я создавать поток pairToString с помощью метода .of(Pair.class), потому что я не знаю, следует ли и где вводить входящую пару (например, Pair<String, Boolean>)

Любая помощь и/или указатели приветствуются!


person JHeut    schedule 13.05.2015    source источник


Ответы (1)


Для общих типов элементов потока вы можете создать поток, используя

Flow.<Pair<String, Boolean>> create()

что дает больше свободы в этом отношении, чем Flow.of(...). Какой из них выбрать — дело вкуса во всех неуниверсальных случаях.

person Roland Kuhn    schedule 14.05.2015
comment
Отлично, работает! Я был смущен тем, как получить правильный синтаксис. Благодарю вас! - person JHeut; 15.05.2015