निम्नलिखित कोड एक "जेनेरिक सरणी निर्माण" त्रुटि देता है।मैं सामान्य प्रकार की आंतरिक कक्षा का सरणी क्यों नहीं बना सकता?
public class TestClass<K, V> {
Entry[] entry;
private TestClass() {
entry = new Entry[10]; // <--- this line gives generic array creation error
}
private class Entry {
public Entry() {
}
}
}
मैं सोच रहा हूँ क्यों इस है, क्योंकि वर्ग Entry
एक सामान्य वर्ग नहीं है और सामान्य प्रकार का कोई वस्तुएं हैं।
क्या ऐसा इसलिए है क्योंकि आंतरिक वर्ग में अभी भी सामान्य प्रकार तक पहुंच है, भले ही यह किसी का उपयोग न करे? यह सबसे अच्छा है जिसके साथ मैं आ सकता हूं, हालांकि अगर यह मामला था, तो मुझे समझ में नहीं आया कि जावा क्यों नहीं देख सकता था और देखता है कि यह सामान्य प्रकार का उपयोग नहीं करता है और इसलिए एक सामान्य वर्ग नहीं है?
और हाँ, मैंने सामान्य प्रकार के सरणी के बारे में कई सारे धागे देखे हैं, लेकिन नहीं, मुझे आंतरिक कक्षाओं के बारे में कोई भी नहीं मिला है।
... एकदम सही बनाता है भावना :) धन्यवाद करेंगे:
या एकांतर वाइल्डकार्ड-पैरामिट्रीकृत प्रकार के साथ: जवाब है कि आप स्पष्ट रूप से कच्चे बाहरी वर्ग प्रकार के साथ
Entry
योग्य होना चाहिए है जब यह मुझे देता है तो सही के रूप में चिह्नित करें। – andy