デバッグの目的でPredicate
、Java 8 でラムダ式 (特に s ですが、他のラムダ式でも興味深いでしょう) の文字列表現を作成しようとしています。私の考えは次のようになります。
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()
このようなことが可能かどうかはわかりません。たとえば、リフレクションを使用すると、これまでのところ何も見つかりませんでした。何か案は?