से त्रुटि, मैं जेनेरिक का उपयोग करके एक लिंक किए गए संग्रह को लागू करने की कोशिश कर रहा हूं, कुछ निम्न की तरह।जेनरिक ऐरे क्रिएशन संकलन आंतरिक कक्षा
public class A<E> {
private class B {
private B[] b;
private E item;
private B() {
this.b = new B[2];
}
} // end inner class B
} // end class A
एक संग्रह और बी एक सरणी संदर्भित उत्तराधिकारियों/पूर्ववर्तियों और एक आइटम के साथ एक तत्व या संग्रह में नोड है।
सरणी निर्माण की अनुमति नहीं है। मुझे मिली त्रुटि generic array creation
है। क्या मुझे यह सोचने का अधिकार है कि यह वास्तव में क्या बना रहा है A<E>.B
की एक सरणी है?
यदि नहीं, तो त्रुटि क्या हो रही है?
यदि हां, तो मैं इसके आसपास कैसे हो सकता हूं?
मैंने स्पष्ट रूप से कोड की एक बड़ी राशि छोड़ी है, अगर मैंने जो प्रदान किया है वह पर्याप्त नहीं है तो कृपया मुझे बताएं। किसी भी सलाह की सराहना की जाएगी। धन्यवाद।
संपादित करें 1: मैंने कहा जाना चाहिए था कि पैरामिट्रीकृत प्रकार B
में के रूप में A
में ही होना चाहिए। तो आंतरिक कक्षा में <E>
गुजरना संभव नहीं है, क्योंकि यह E#2
बनाता है और E#1
के साथ छोड़ देता है।
नहीं विशेष रूप से अपने प्रश्न का उत्तर है, लेकिन यह दो चर 'के लिए बेहतर डिजाइन किया जाएगा पूर्ववर्ती 'और' उत्तराधिकारी 'प्रकार बी के बजाय दो तत्वों की सरणी के बजाय। आपकी कक्षा को पढ़ने में आसान बना देगा। मुझे लगता है कि यह आपकी समस्या को दूर कर देगा? –
डब्लूआरटी संपादित 1, 'स्थिर वर्ग बी' आज़माएं और आपके पास नामकरण समस्या नहीं होगी। सरणी अभी भी काम नहीं करेगी, हालांकि, यह जेनेरिक है। –
आप सरणी के बजाय जेनेरिक संग्रह का उपयोग कर इसके आसपास भी हो सकते हैं। – trutheality