2012-05-23 13 views

उत्तर

54

यह एक छोटा हाथ ही उपलब्ध है जब निर्माण और एक सरणी बताए।

String[] array = {"a", "b", "c"}; 

आप इस हालांकि कर सकते हैं:

List<String> list = Arrays.asList("a","b","c"); 

asList के रूप में "vararg" तर्क ले सकते हैं।

11

आप कोशिश कर सकते हैं

List<String> list = Arrays.asList(new String[] {"a","b","c"}); 
+1

नहीं है, आप कर सकते हैं 'Arrays.asList (" एक "," ख "," ग ");' है, जो कम है, और अधिक ओपी के मूल प्रश्न के समान है। –

+6

थॉमस ने जो कहा वह अभी भी वैध है और डाउनवोट के लायक नहीं है। – Jeshurun

+0

नहीं, उसने जो कहा वह "आप * लिखने के लिए है", जो असत्य है, इसलिए, हाँ, यह * एक डाउनवोट के लायक है। –

11

आपका प्रश्न क्यों एक काम करता है और अन्य ठीक है, नहीं करता है?

अच्छा, कारण यह है कि {"a","b","c"}मान्य जावा अभिव्यक्ति नहीं है, और इसलिए संकलक इसे स्वीकार नहीं कर सकता है।

आपको इसके साथ क्या लगता है कि आप full array creation expression (जेएलएस 15.10) प्रदान किए बिना सरणी प्रारंभकर्ता को पास करना चाहते हैं।

सही सरणी सृजन का भाव, कर रहे हैं के रूप में अन्य लोगों ने बताया है

String[] array = {"a", "b", "c"}; 

रूप JLS 10.6 Array Initializers में कहा गया है, या

String[] array = new String[]{"a", "b", "c"}; 

रूप JLS 15.10 Array Creation Expressions में कहा गया है।

यह दूसरा एक इनलाइनिंग के लिए उपयोगी है, इसलिए आप सीधे सरणी चर के बजाय इसे पास कर सकते हैं।

के बाद से Arrays में asList विधि चर तर्क का उपयोग करता है, और चर तर्क भाव सरणियों पर मैप किए जाते, आप या तो एक इनलाइन सरणी में के रूप में दे सकते हैं:

List<String> list = Arrays.asList(new String[]{"a", "b", "c"}); 

या बस चर तर्क है कि स्वचालित रूप से पारित एक सरणी से मैप किया गया:

List<String> list = Arrays.asList("a","b","c"); 
संबंधित मुद्दे