बनाना मैं सहकर्मी नेटवर्क के लिए एक सहकर्मी में कुछ वितरित गणना करने के लिए एक आवेदन लिख रहा हूं। नेटवर्क को परिभाषित करने में मेरे पास दो वर्ग पी 2 पीनेटवर्क और पी 2 पी क्लाइंट है। P2PClient setNetwork (टी नेटवर्क) की एक विधि को परिभाषित करने के साथसर्कुलर जेनेरिक संदर्भ
P2PNetwork<T extends P2PClient<? extends P2PNetwork<T>>>
P2PClient<T extends P2PNetwork<? extends T>>
: मैं इन सामान्य हो सकता है और इसलिए की परिभाषा करना चाहते हैं। क्या मैं इस कोड के साथ वर्णन करने के लिए आशा करता हूं है:
- एक P2PNetwork एक खास प्रकार के ग्राहकों
- एक P2PClient केवल एक नेटवर्क जिसके ग्राहक इस रूप में एक ही प्रकार से मिलकर बनता है पास न हो की गठन किया गया है ग्राहक ( परिपत्र-संदर्भ)
यह मेरे लिए सही लगता है, लेकिन अगर मैं
MyP2PClient<MyP2PNetwork<? extends MyP2PClient>> myClient;
0 के रूप में एक गैर जेनेरिक वर्जन इस तरह बनाने की कोशिश
और अन्य रूपों को मैं संकलक से कई त्रुटियां प्राप्त करता हूं। तो मेरे सवालों का इस प्रकार हैं:
- एक सामान्य वृत्तीय संदर्भ भी संभव (मैं स्पष्ट रूप से इसे मना कुछ भी कभी नहीं देखा है) है?
- क्या उपरोक्त सामान्य परिभाषा ऐसे परिपत्र संबंधों की सही परिभाषा है?
- अगर यह वैध है, यह "सही" तरह से ऐसे रिश्ते वर्णन करने के लिए नहीं है (यानी एक और वैध परिभाषा है, जो शैलीगत पसंदीदा है)?
- मैं क्लाइंट के गैर-जेनेरिक उदाहरण और सर्वर को उचित जेनेरिक परिभाषा को सही तरीके से परिभाषित कैसे करूं?
मैं अभी भी एक निश्चित जवाब खोजने के लिए पर नहीं कर पाए हैं कि "यह संभव", फिर भी आगे पढ़ने और प्रयास मेरा मानना है कि इसे बनाने के लिए संभव है से परिभाषा, लेकिन इसका उपयोग वस्तुओं को तुरंत चालू नहीं करने के लिए। –