1 回答
TA贡献2065条经验 获得超14个赞
试图将自定义打印方法直接绑定到File对象违反了单一职责原则。可能有多种有效的方法来打印列表的内容。将每个打印方法直接添加到类中会很快使类膨胀,也会使类的用户感到困惑。
最实用的方法是创建一个单独的对象或实用方法来执行这项工作。
public class FileNamePrinter {
public String print(List<File> files) {
StringJoiner joiner = new StringJoiner("," "[", "]");
for (File file : files) {
joiner.add(file.getName());
}
return joiner.toString();
}
}
在您的常规逻辑中,您现在可以使用此FilePrinter对象来执行翻译。
List<File> files = ...;
FileNamePrinter printer = new FileNamePrinter();
System.out.println(printer.print(files));
另一种选择是根据该getName方法将文件列表转换为字符串列表,然后打印该列表
System.out.println(files.stream()
.map(File::getName)
.collect(Collectors.toList()));
添加回答
举报
