【问题标题】:Java 8, Convert file name array to file arrayJava 8,将文件名数组转换为文件数组
【发布时间】:2015-11-28 03:32:18
【问题描述】:

我有一个String 文件名数组,我想将它们转换为File 数组。我在想是否有比这个更优雅的方法。

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

编辑 感谢您在 cmets 中的注意。我正在使用 Java 8

【问题讨论】:

标签: java arrays type-conversion


【解决方案1】:

在 Java 7 或更低版本中,使用普通的 JDK,没有。从 Java 8 开始,您可以为此使用流:

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

【讨论】:

  • s -&gt; new File(s) 可以简化为File::new。就个人而言,我更喜欢方法引用。
  • @bcsb1001 使用该方法时要小心,特别是对于重载方法。在 method 重载(甚至是类构造函数)时使用Class::method 阅读并遇到问题后,我更喜欢使用描述性方式。
  • 你也可以使用.toArray(File[]::new),但同样:考虑路径而不是文件,可能是列表而不是数组。
  • @Puce 我知道这一点,但 OP 询问使用 File 和数组。只是提供他所要求的。
猜你喜欢
  • 2015-02-04
  • 2019-07-14
  • 2022-01-22
  • 2013-06-23
  • 2018-09-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多