2015-09-02 7 views
7

में कनवर्ट करें मेरे पास String फ़ाइल नामों की एक सरणी है और मैं उन्हें File सरणी में रूपांतरित करना चाहता हूं। मैं घूम रहा हूं कि इसके बजाय इसे करने का एक और शानदार तरीका है या नहीं।जावा 8, फ़ाइल नाम सरणी को फ़ाइल सरणी

String[] names = {file1, file2, file3}; 
File[] files = new String[names.length]; 
for (int i = 0; i < names.length; i++) { 
    files[i] = new File(names[i]); 
} 

संपादित टिप्पणी में ध्यान देने योग्य बात के लिए धन्यवाद। मैं जावा 8

+5

क्या आप जावा 8 का उपयोग कर रहे हैं? – wjans

+1

जावा -8 समान: http://stackoverflow.com/questions/23057549/lambda-expression-to-convert-array-list-of-string-to-array-list-of-integers – BackSlash

+1

साइड नोट: उपयोग करने पर विचार करें फाइल ऑब्जेक्ट्स के बजाय एनआईओ 2 फाइल एपीआई से पथ। – Puce

उत्तर

6

जावा 7 या उससे कम में, सादा जेडीके का उपयोग कर रहा हूं, ऐसा नहीं है। जावा 8 के बाद से, आप इसके लिए स्ट्रीम का उपयोग कर सकते हैं:

String[] names = {file1, file2, file3}; 
File[] files = Arrays.stream(names) 
    .map(s -> new File(s)) 
    .toArray(size -> new File[names.length]); 
+2

फिर भी, ओपी का कोड मेरे लिए अधिक पठनीय है: - | +1 –

+3

'- नई फ़ाइल (ओं)' को 'फाइल :: नया' में सरलीकृत किया जा सकता है। व्यक्तिगत रूप से, मैं विधि संदर्भ पसंद करते हैं। – bcsb1001

+0

@ बीसीएसबी 1001 सावधानीपूर्वक उस दृष्टिकोण का उपयोग करते समय सावधानीपूर्वक अधिभारित तरीकों के लिए। 'कक्षा :: विधि' का उपयोग करते हुए कुछ पढ़ने और सामना करने के बाद * विधि * ओवरलोड (यहां तक ​​कि कक्षा रचनाकार), मैं वर्णनात्मक तरीके का उपयोग करना पसंद करता हूं। –

संबंधित मुद्दे