В целях отладки я пытаюсь создать строковые представления лямбда-выражений (в частности, Predicates, хотя это было бы интересно и для других лямбда-выражений) в Java 8. Моя идея будет примерно такой:
public class Whatever {
private static <T> String predicateToString(Predicate<T> predicate) {
String representation = ... // do magic
return representation;
}
public static void main(String[] args) {
System.out.println(Whatever.<Integer>predicateToString(i -> i % 2 == 0));
}
}
И вывод будет i -> i % 2 == 0 (или что-то логически эквивалентное). Метод toString(), похоже, бесполезен, на выходе получается что-то вроде com.something.Whatever$$Lambda$1/1919892312@5e91993f (чего, я думаю, следует ожидать, поскольку toString() не переопределяется).
Я не уверен, возможно ли что-то подобное, например. с отражением, я, конечно, пока ничего не смог найти на нем. Любые идеи?