报告连续多个 java.io.File 特性检查,例如: 此类调用可被替换为批量 Files.readAttributes() 调用。 这通常比多个单独的特性检查性能更好。

示例:


  boolean isNewFile(File file, long lastModified) throws IOException {
    return file.isFile() && file.lastModified() > lastModified;
  }

在应用快速修复后:


  boolean isNewFile(File file, long lastModified) throws IOException {
    var fileAttributes = Files.readAttributes(file.toPath(), BasicFileAttributes.class);
    return fileAttributes.isRegularFile() && fileAttributes.lastModifiedTime().toMillis() > lastModified;
  }

如果 IOException 在当前上下文中未被处理,则此检查不会显示警告,但快速修复仍然可用。

请注意,替换通常不完全相同,应谨慎使用。 特别是,如果文件根本不存在,行为可能会有所不同。

仅当项目或模块的语言级别为 7 或更高时,此检查才会报告。

2022.1 最新变化