मैं allowing
अंदरमैं Java8 विधि संदर्भ का लक्ष्य कैसे ढूंढ सकता हूं?
public interface Service {
public String stringify(Object o);
}
service = mockery.mock(Service.class);
mockery.allowing(service::stringify).with(42).will(() -> "42");
तो एक नकली वस्तु के लिए कॉल कैप्चर करना चाहते हैं मैं एक Function<Object, String>
है वहाँ किसी भी reflecto-जादू मुझे विधि संदर्भ से बनाए गए समारोह से सेवा मिल जाएँगे जो है ?
public WithClause allowing(Function<T,R> f) {
Object myServiceBackAgain = findTargetOf(function);
....
}
मुझे पता है कि फ़ंक्शन हमेशा इन विधि संदर्भों से आ जाएगा, इसलिए मुझे जितना आवश्यक हो उतना नीचे डालना अच्छा लगता है।
यह संबंधित Is it possible to convert method reference to MethodHandle? जैसा ही प्रश्न नहीं है, क्योंकि शुरुआत के लिए यह एक ही प्रश्न नहीं है, केवल संबंधित क्षेत्र में। और यहां तक कि अगर मैं एक विधि हैडल प्राप्त कर सकता हूं, तो मुझे इसका लक्ष्य नहीं मिल सकता है।
कोई भी नहीं कहा कि यह वही सवाल है। शायद आपको संदेश पढ़ना चाहिए: "* इस प्रश्न में पहले से ही एक जवाब है *"। तो * उत्तर * पढ़ने शुरू करें। यह सबकुछ बताता है, इसलिए आपको यह अनुमान लगाने की आवश्यकता नहीं है कि क्या आप मेथडहैंडल प्राप्त कर सकते हैं, यह बात नहीं है। यह * केवल एक शीर्षक * है। – Holger
शायद @ होल्गर, शायद इस प्रश्न का उत्तर के रूप में, आप यह बताना चाहते हैं कि लिंक किए गए प्रश्न का उत्तर मेरा जवाब कैसे देता है? विशेष रूप से जहां समारोह धारावाहिक नहीं है। –
मूल रूप से यह समझाता है कि यह संभव नहीं है (सीरियलाइजेशन चाल के अलावा) और यहां तक कि यदि यह भी था, तो यह वही नहीं किया गया जो आप उम्मीद करते हैं क्योंकि इस बात की कोई गारंटी नहीं है कि आपके स्रोत कोड में कोई विधि संदर्भ बाइट पर प्रत्यक्ष हैंडल हो रहा है कोड स्तर ध्यान दें, अतिरिक्त जानकारी के लिए संबंधित प्रश्नों के बहुत सारे लिंक हैं। यही कारण है कि मैंने सीधे इस सवाल को निर्देश दिया कि "जावा 8 विधि संदर्भ का तरीका कैसे प्राप्त करें?"] (Http://stackoverflow.com/q/19845213/2711488) जो आपके शब्द के करीब है लेकिन प्रदान करता है उत्तरों में कम जानकारी। – Holger