显然,无法从List< File>转换。列出<路径>。我试图这样做,因为JFileChooser返回一个File对象数组。现在,我只是好奇Java中是否有比使用循环更优雅(功能)的方法。
import java.io.File;
import java.nio.file.Path;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Test {
public static void main(String[] args) {
File[] array = new File[] { new File("a.txt"), new File("b.txt"),
new File("c.txt"), new File("d.txt") };
// Type mismatch: cannot convert from List<File> to List<Path>
// List<Path> list = Arrays.asList(array);
// This will work but is not particularly pretty
List<Path> list = new ArrayList<Path>();
for (int i = 0; i < array.length; i++) {
list.add(array[i].toPath());
}
System.out.println(list);
}
}
答案 0 :(得分:7)
您已经可以使用更好的循环
for(File f: array) {
list.add(f.toPath();
}
然后,如果您使用的是Java 8,则可以使用以下内容来使用新流:
final List<Path> list = Arrays.stream(array).map(File::toPath)
.collect(Collectors.toList());