मैं इस प्रकार एक निर्माता हस्ताक्षर के साथ एक वर्ग है। लेकिन मैं कन्स्ट्रक्टर को अधिभारित करना चाहता हूं, अगर आप फंक्शन func
प्रदान नहीं करते हैं, तो यह केवल (item)->{return item;}
का उपयोग करेगा। मैं एक निर्माता है कि इस तरह दिखता है लिखा है:जावा जेनेरिक प्रकार बेमेल त्रुटि
public <T> MyClass(Set<T> data){
this(
data,
(item)->{return item;}
);
}
यह एक प्रकार मेल नहीं खाता त्रुटि पैदा समारोह मैं अपने निर्माता के लिए एक तर्क के रूप प्रदान कर रहा हूँ प्रकार T
के एक मूल्य लेता है, और है कि एक ही रिटर्न क्योंकि मान, जो U
होना चाहिए। मुझे समझ में नहीं आता कि बीजगणितीय प्रकार प्रणाली क्यों नहीं देखती है कि इस मामले में यू और टी समान हैं और यह ठीक है?
आप की तरह '(आइटम) एक अनाड़ी वाक्य रचना की जरूरत नहीं है -> {वापसी आइटम;}', बस 'लिखने आइटम -> आइटम '। या, ठीक है, 'Function.identity() ' – Holger
धन्यवाद @ होल्गर, मैंने' फंक्शन.डाइंडिटी()' –