2015-10-23 19 views
8

ग्रहण में जावा 8 स्ट्रीम सीख रहा था। नीचे व्यवहार छात्र वस्तुओं की एक सूची, stuList मिल गया है। मेरे पास इस तरह की एक अभिव्यक्ति है।ग्रहण जावा 8 लैम्ब्डा अभिव्यक्तियों के लिए स्वत: पूर्णता

stuList.stream().collect(Collectors.averagingDouble(p -> p.getMarks())); 

अगर मैं p -> p. बारे में और फिर एक सामग्री ग्रहण के साथ सहायता की कोशिश, कोई तरीकों दिखाए जाते हैं। लेकिन अगर एक एलएचएस, double d = जोड़ने, तो एक सामग्री करना p -> p. पर सहायता सभी तरीकों उपलब्ध दर्शाता है।

मुझे ग्रहण करने की उम्मीद है कि मैं एक छात्र वस्तु पर काम कर रहा हूं भले ही मैं एलएचएस प्रदान न करूं। पहले मामले के लिए यदि मैं स्वयं विधि लिखता हूं, तो कोड ठीक से संकलित करता है। केवल ऑटो पूर्ण काम नहीं कर रहा है

इसके लिए कोई संकेतक? और क्यों एलएचएस जोड़ना ग्रहण करने के लिए ग्रहण की अनुमति देता है?

का उपयोग ग्रहण: मंगल ग्रह .. इस स्थिति में

+2

ओह, मैं दिन की प्रतीक्षा कर रहा हूं, ग्रहण सही प्रकार और पूर्ण कोड के लिए सही प्रकार का अनुमान प्राप्त करता है, * फिर * मैं अपूर्ण कोड पर अनुमान के साथ परेशान करना शुरू कर सकता हूं ... – Holger

+2

ग्रहण में इसके स्वत: पूर्णता में बग है। विशेष रूप से लंबे/जटिल कोड ब्लॉक में, यह किसी बिंदु पर बस जमानत लग रहा है। जैसे https://bugs.eclipse.org/bugs/show_bug.cgi?id=463476 या https: //bugs.eclipse।संगठन/बग/show_bug.cgi? id = 462015 – the8472

+2

अजीब रूप से पर्याप्त, ग्रहण 'छात्र' टाइप करने के लिए 'p' का पता लगाता है (यदि आप इसे होवर करते हैं) लेकिन सामग्री सहायता गलत है ... – Tunaki

उत्तर

7

समापन p के प्रकार के नाम से जाना जाने की आवश्यकता है। जब तक कोड , p कोको इंगित किया गया है, तो @Tunaki द्वारा इंगित किया गया है। जैसे ही, आप '।' दर्ज करते हैं कोड अभी भी टूटी हुई है, कोई पाठ मंडराना p पर दिखाई देता है। (साइड नोट: पाठ मंडराना और पूरा अलग संदर्भ में जानकारी के साथ अलग संकलक आमंत्रण परिकलित किए गए हैं, इसलिए वे हमेशा ठीक उसी जानकारी को देखने नहीं होगा)।

मानव पाठक के लिए लैम्ब्डा शरीर p के प्रकार का निष्कर्ष निकालते के लिए अप्रासंगिक रूप में प्रकट हो सकता है, वहीं अनुमान जानने के बिना, जैसे आगे नहीं बढ़ सकता है, चाहे लैम्ब्डा शून्य-संगत और/या मूल्य-संगत है। p. एक अभिव्यक्ति है कि इस सवाल का जवाब मदद कर सकता है नहीं है।

उचित लक्ष्य प्रकार होने के कारण अनुमान टाइप करने के लिए एक महत्वपूर्ण इनपुट है, इसलिए सामान्य शब्दों में यह आश्चर्यचकित नहीं होना चाहिए कि एलएचएस जोड़ने से स्थिति में सुधार होता है। मैं एक के लिए तैयार स्पष्टीकरण है, हालांकि नहीं है, यही कारण है कि इस मामले में वास्तव में यह प्रभावों कोड पूर्णता।

इन सभी को केवल तभी दिखाना चाहिए (एक बहुत ही उच्च स्तर पर) क्यों ग्रहण इस तरह से व्यवहार करता है। सुधार हमेशा संभव होता है, भले ही इसमें अपूर्ण कोड पर टाइप अनुमान के रूप में चरम जटिलता शामिल हो - हम उच्च आदेश अनुमान से कम से कम अनुरोध नहीं कर रहे हैं: यह बताते हुए कि कई संभावित सम्मेलनों में से कौन सा संभावित परिणाम हो सकता है।

ओपन-सोर्स टूल के बारे में अच्छी बात यह है कि: आप अच्छी तरह से लिखित बग रिपोर्ट या यहां तक ​​कि कोड योगदान के द्वारा अपने निरंतर सुधार में मदद कर सकते हैं। कुछ समय के लिए @ 8484 द्वारा अनुत्तरित बग रिपोर्ट को देखते हुए मैंने उन्हें रडार पर वापस रखने के लिए एक टिप्पणी छोड़ दी। उपयोगकर्ता उपयुक्त अंतराल में बग रिपोर्ट पर टीम को पिंग करने के लिए स्वतंत्र महसूस करना चाहिए, समुदाय की मांग प्राथमिकताओं की स्थापना के लिए प्रासंगिक हैं। लैम्ब्डा निकायों के अंदर कोड पूर्णता टीम के एजेंडे पर एक गर्म विषय है।

संबंधित मुद्दे