final var someString = "first\nsecond\nthird"
final var myPattern = java.util.regex.Pattern.compile("second");
final var sb = new java.lang.StringBuilder();
someString.lines()
.takeWhile(not(myPattern::asMatchPredicate))
.forEachOrdered(sb::append)
;
method asMatchPredicate in class java.util.regex.Pattern cannot be applied to given types
required: no arguments
found: java.lang.String
reason: actual and formal argument lists differ in length
Я пытаюсь применить предикат из шаблона к потоку строковых значений: [code]final var someString = "first\nsecond\nthird" final var myPattern = java.util.regex.Pattern.compile("second"); final var sb = new java.lang.StringBuilder();
someString.lines() .takeWhile(not(myPattern::asMatchPredicate)) .forEachOrdered(sb::append) ; [/code] Но компилятор отказывается от этого с ошибкой: [code]method asMatchPredicate in class java.util.regex.Pattern cannot be applied to given types required: no arguments found: java.lang.String reason: actual and formal argument lists differ in length [/code] Но почему? Предикат принимает строку ([code]Predicate[/code]), а метод takeWhile ожидает Predicate
Я хочу знать, есть ли способ добавить последний элемент потока, который был проверен на соответствие условию метода takeWhile(). Я считаю, что хочу добиться чего-то похожего на метод takeUntil() в RxJava.
Я предполагаю, что прямого способа сделать...
Я хочу знать, есть ли способ добавить последний элемент потока, который был проверен на условие метода Takewhile () . Я считаю, что хочу достичь чего -то похожего на метод rxjava takeuntil () .
Я предполагаю, что нет прямого способа сделать это...