2015-09-02 4 views
7

Ich habe ein Array von String Dateinamen und ich möchte sie in File Array zu konvertieren. Ich wanderte, ob es eine elegantere Art und Weise zu tun gibt als diese.Java 8, konvertieren Dateiname Array in Datei-Array

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]); 
} 

EDIT Dank für das in den Kommentaren der Feststellung. Ich verwende Java 8

+5

Verwenden Sie Java 8? – wjans

+1

Java-8 ähnlich: http://stackoverflow.com/questions/23057549/lambda-expression-to-convert-array-list-of-string-to-array-list-of-integers – BackSlash

+1

Seitennotiz: Erwägen zu verwenden Pfad von der NIO.2-Datei-API anstelle von Dateiobjekten. – Puce

Antwort

6

In Java 7 oder weniger, mit einfachen JDK, gibt es nicht. Seit Java 8 können Sie Streams dafür verwenden:

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

Dennoch ist der OP-Code für mich besser lesbar: - | +1 –

+3

's -> neue Datei (en)' kann zu 'File :: new' vereinfacht werden. Persönlich bevorzuge ich Methodenreferenzen. – bcsb1001

+0

@ bcsb1001 vorsichtig bei der Verwendung dieses Ansatzes, speziell für überlastete Methoden. Nach einigen Lese- und Darstellungsproblemen, die 'Class :: method' verwenden, wenn * method * überladen ist (selbst Klassenkonstruktoren), bevorzuge ich die beschreibende Methode. –

Verwandte Themen