डीबगिंग उद्देश्यों मैं (है, हालांकि यह भी अन्य लैम्ब्डा भाव के लिए दिलचस्प होगा Predicate
एस के लिए विशेष रूप से) जावा 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/[email protected]
जैसा कुछ है (जो मुझे लगता है कि toString()
को ओवरराइड नहीं किया गया है)।
मुझे यकीन नहीं है कि ऐसा कुछ भी संभव है, उदाहरण के लिए प्रतिबिंब के साथ, मैं निश्चित रूप से अब तक कुछ भी नहीं ढूंढ पाया है। कोई विचार?
डीबगिंग उद्देश्यों? क्या आप सिर्फ स्रोत को नहीं देख सकते? –
कि एक decompiler की आवश्यकता होगी। – SLaks
@SotiriosDelimanolis बेशक मैं हमेशा स्रोत को देख सकता हूं। लेकिन प्रिंट करने योग्य प्रतिनिधित्व भी अच्छा होगा। – blalasaadri