示例#1
0
  @Test
  public void optionAndStream() {
    Function<Integer, Integer> add2 = i -> i + 2;
    Function<StreamT<Integer>, StreamT<Integer>> optTAdd2 = StreamT.lift(add2);

    Stream<Integer> nums = Stream.of(1, 2);
    AnyM<Stream<Integer>> stream = AnyM.fromOptional(Optional.of(nums));

    List<Integer> results =
        optTAdd2
            .apply(StreamT.of(stream))
            .unwrap()
            .<Optional<Stream<Integer>>>unwrap()
            .get()
            .collect(Collectors.toList());

    assertThat(results, equalTo(Arrays.asList(3, 4)));
  }