टाइप कास्ट आमतौर पर केवल तभी आवश्यक होता है जब आप प्री-जेनरिक जावा का उपयोग कर रहे हों। । आप डॉक्स को देखने Collection.toArray(T[])
के लिए आप देखेंगे यह जानता है कि कि सरणी जो दिया जाता है के प्रकार के सरणी के प्रकार तो में पारित रूप में ही है, तो आप लिख सकते हैं:
List<String> list = new ArrayList<String>();
list.add("Foo");
String[] array = list.toArray(new String[0]);
उत्तीर्ण होने के संग्रह में बताने के लिए सरणी में आप किस परिणाम प्रकार चाहते हैं, जो संग्रह में प्रकार के समान नहीं हो सकता है। जाहिर बाद ही अगर हर तत्व वास्तव में एक ByteArrayOutputStream
है काम करने के लिए जा रहा है - उदाहरण के लिए, यदि आप एक List<OutputStream>
है आप एक Object[]
, एक Stream[]
या एक ByteArrayOutputStream[]
करने के लिए कि कन्वर्ट करने के लिए कर सकते हैं। इसका यह भी अर्थ है कि यदि आपके पास पहले से सही प्रकार और आकार की एक सरणी है, तो सामग्री को एक नई सरणी बनाने के बजाय उसमें कॉपी किया जा सकता है।
इस उत्तर के पिछले संस्करण गलत था, वैसे - अगर आप अधिभार का उपयोग कोई पैरामीटर नहीं ले करता है जो, आप हमेशा वापस पाने के लिए एक Object[]
जो ढाला नहीं जा सकता:
List<String> list = new ArrayList<String>();
list.add("Foo");
// toArray doesn't know the type of array to create
// due to type erasure
Object[] array = list.toArray();
// This cast will fail at execution time
String[] stringArray = (String[]) arrray;
संपादित करें: मैं बस पाया है कि इस भी erdemoo के जवाब में बताया गया है, लेकिन यह इसे यहाँ के लिए चोट नहीं कर सकते हैं भी :)
स्रोत
2009-06-29 05:37:09
ग के प्रकार पर निर्भर करता है। – gimel
नोट: आप 'c.toArray (नया स्ट्रिंग [] {}) भी उपयोग कर सकते हैं;' –