2013-03-05 8 views
6

निष्पादित करने के लिए निम्नलिखित काम करेगा:कैसे जावा तरीकों के अनुक्रम से अधिक मैप करने के लिए

(map #(%1 "21") [identity]) 

हालांकि निम्न कोड में विफल रहता है

(map #(%1 "21") [.toString]) 

मैं जावा तरीकों में से एक seq/संग्रह बना सकता हूँ?

+1

आप इस सवाल का जवाब मिल गया है द्वारा समारोह बना सकते हैं, लेकिन मैं ज्यादातर उपयोग के मामलों है कि आप सवाल पूछने के लिए नेतृत्व के साथ संबंध रहा हूँ। मुझे एक नहीं लगता है। मैं निष्पादित करने के लिए एक समारोह बनाने के लिए उन्हें एक साथ 'comp' करना चाहता हूं। –

उत्तर

10

जावा विधियां क्लोजर में फ़ंक्शंस जैसे प्रथम श्रेणी के नागरिक नहीं हैं। आप चर विधियों और संग्रहों में पैरामीटर, वापसी या स्टोर के रूप में जावा विधियों को पारित नहीं कर सकते हैं। लेकिन तुम memfn या सिर्फ गुमनाम समारोह जो मूल विधि कॉल लपेटता

(map #(%1 21) [(memfn toString)]) 
=> ("21") 

(map #(%1 21) [#(.toString %)]) 
=> ("21") 
संबंधित मुद्दे