Как преобразовать строку в лямбда-выражение?

Я немного подумал и придумал интересную проблему, предположим, у нас есть файл конфигурации (входной) с:

x -> x + 1
x -> x * 2
x -> x * x
x -> -x

И кроме того, у нас есть списокIntegers:

List<Integer> list = new ArrayList<>();
list.addAll(Arrays.toList(1, 2, 3, 4, 5));

Есть ли способ конвертироватьStringс (x -> x + 1и т. д.)Objects, которые представляют лямбда-выражение? Который затем может быть использован как:

Object lambda = getLambdaFromString("x -> x + 1");
if (lambda.getClass().equals(IntFunction.class) {
    list.stream().forEach()
        .mapToInt(x -> x)
        .map(x -> ((IntFunction)lambda).applyAsInt(x))
        .forEach(System.out::println);
}

Как бы я написал такой методgetLambdaFromString?

Есть ли что-то, что я мог бы повторно использовать из JDK / JRE?Должен ли я написать все сам?Можно ли сузитьObject lambda что-то еще, что захватывает только лямбды?

Ответы на вопрос(2)

Ваш ответ на вопрос