3
List of DataFilesを受け取るメソッドを作成し、そのフィールドの1つでString述語を使用してフィルタリングし、Stringの代わりにList of DataFilesを返すメソッドを作成します。ここでString述語を使用してストリームをフィルタリングする
は私のコードです:私は.map(DataFile::getFileName)
を行うと
public static List<DataFile> someMethod(List<DataFile> dataFiles) {
return dataFiles
.stream()
.map(DataFile::getFileName)
.filter(companyAndDateFilter(date, BLABLA, LALALA))
.collect(Collectors.toList());
}
private static Predicate<String> companyAndDateFilter(LocalDate date, String... companyNames) {
String companies = getCompaniesAsString(companyNames);
String formattedDate = formatTheDate(date);
Pattern pattern = Pattern
.compile("^(" + companies + ")_(" + formattedDate + ")");
LOGGER.info("Filtering files using RegEx: " + pattern.pattern());
return pattern.asPredicate();
}
私はStream<String>
に私のストリームを変換するが、私はStream<DataFile>
としてそれを残して、まだそのDataFile::getFileName
上(Predicate<String>
ある)フィルタを使用したいと思います。それは可能ですか?