Унарный оператор над типом в Java
UnaryOperator<T> extends Function<T, T>:
значение того же типа преобразуется в значение того же
типа. Метод по-прежнему apply. Для строковых
заголовков это удобнее, чем писать два одинаковых
параметра типа в Function.
Оператор обрезки пробелов:
import java.util.function.UnaryOperator;
UnaryOperator<String> trim = String::trim;
Применение к строке:
public class Main {
public static void main(String[] args) {
UnaryOperator<String> trim = String::trim;
System.out.println(trim.apply(" kotlin "));
}
}
Несколько шагов можно передать в метод, который последовательно вызывает оператор:
import java.util.function.UnaryOperator;
class TitlePipeline {
String run(String raw, UnaryOperator<String> step) {
return step.apply(raw);
}
}
Лямбда для приведения к нижнему регистру после обрезки оформляется отдельным оператором:
UnaryOperator<String> lower = text -> text.toLowerCase();
TitlePipeline pipeline = new TitlePipeline();
String out = pipeline.run(" API ", lower);
Создайте UnaryOperator<String> wrap, который
возвращает "[" + исходная строка + "]".
Примените к "tag" и выведите "[tag]".