Monday 15 July 2013

java - How to create generic primitive arrays? -


यह एक निम्न प्रश्न आ रहा है।

दिए गए दो विधियों के साथ,

  @SuppressWarnings ("अनचेक") स्थिर & lt; T & gt; टी [] सरणी 1 (अंतिम कक्षा & lt; T & gt; तत्व प्रकार, अंतिम पूर्णांक आकार) {रिटर्न (टी []) सरणी। नई एक्सटेंशन (तत्व प्रकार, आकार); }   
  स्थिर & lt; T & gt; टी [] सरणी 2 (अंतिम कक्षा & lt; T []> सरणी प्रकार, अंतिम पूर्णांक आकार) {return arrayType.cast (Array.newInstance (arrayType.getComponentType (), आकार)); }   

दोनों विधियां ऑब्जेक्ट प्रकार के लिए ठीक काम करती हैं।

  अंतिम पूर्णांक [] objectArray1 = array1 (पूर्णांक। वर्ग, 0); अंतिम पूर्णांक [] objectArray2 = array2 (पूर्णांक []। वर्ग, 0);   

जब प्राथमिकताओं की बात आती है, दोनों आमंत्रण संकलन नहीं करते हैं।

  // array1 अंतिम int [ ] PrimitiveArray1 = array1 (int.class, 0);   
  GenericArray.java12: त्रुटि: असंगत प्रकार अंतिम पूर्णांक [] primitiveArray1 = array1 (int.class, 0); ^ [आवश्यक]: पूर्णांक [] मिला: पूर्णांक [] 1 त्रुटि   
  // array2 अंतिम int [] primitiveArray2 = array2 (int [ ]। वर्ग, 0);   
  GenericArray.java:13: त्रुटि: वर्ग GenericArray में विधि array2 दिए गए प्रकारों पर लागू नहीं किया जा सकता; अंतिम पूर्णांक [] आदिमअरेरे 2 = सरणी 2 (int []। वर्ग, 0); ^ अपेक्षित: क्लास और लेफ्टिनेंट टी []>, इंट: क्लास और लेफ्टिनिअस इंट []>, इंटरेस्ट: अनुमानित बद्धों का अनुमान नहीं है: इंट बाउंड्स: ऑब्जेक्ट जहां टी एक प्रकार है -वर्तनीय: टी विधि में & lt; T & gt; array2 (कक्षा & lt; T [] & gt; int) 1 त्रुटि   

मैं आदिम प्रकारों के साथ कैसे कर सकता हूँ?

इसके बदले इसे प्रयास करें

  स्थिर & lt; a & gt; एक सरणी 3 (अंतिम कक्षा & लेफ्टिनेंट; ए & gt; सरणी प्रकार, अंतिम पूर्णांक आकार) {इनपुट छोड़े गए ...} अंतिम पूर्णांक [] आदिमअरेरे 3 = सरणी 3 (int []। वर्ग, 0);    

No comments:

Post a Comment