मैं तीन जेनेरिक इंटरफेस (उनमें से दो के बीच एक प्रतिलोम रिश्ते के साथ) है और उन्हें एक पुनरावर्ती विधि में कार्रवाई करने के लिए करना चाहते हैं:Recursion और जेनेरिक इंटरफेस के साथ कार्य करना
public interface User<R extends Role<R,U>, U extends User<R,U>>
{
public R getRole();
public void setRole(R role);
}
public interface Role<R extends Role<R,U>,U extends User<R,U>>
{
public List<R> getRoles();
public void setRoles(List<R> roles);
public List<U> getUser() ;
public void setUser(List<U> user);
}
अब मैं एक साथ कुछ प्रसंस्करण क्या करना चाहते हैं मेरी Worker
कक्षा में प्रत्यावर्तन:
public <R extends Role<R,U>,U extends User<R,U>> void recursion(List<R> roles)
{
for(R role : roles)
{
recursion(role.getRoles());
}
}
मैं इस त्रुटि मिलती है और मैं कर रहा हूँ पता लगा नहीं था क्यों यह काम नहीं करता या मैं यह कैसे हल कर सकते हैं:
Bound mismatch: The generic method recursion(List<R>) of type Worker is not
applicable for the arguments (List<R>). The inferred type User<R,User<R,U>>
is not a valid substitute for the bounded parameter <U extends User<R,U>>
मैं 'Role' के लिए इंटरफ़ेस विधि को बदलने के निहितार्थ के बारे में अनिश्चित हूँ। मुझे लगता है कि यह 'रोल' के इंटरफ़ेस की एक सूची देता है। मैं कुछ '@ इकाई' कार्यान्वयन के लिए इंटरफेस का उपयोग कर रहा हूं। रिकर्सिव विधि का उपयोग एक उपयोगिता वर्ग में किया जाता है, शायद डेकवे के वाइल्डकार्ड प्रस्ताव '?' मेरे लिए उपयुक्त है। – Thor