3
DataFiles List를받은 메소드를 만들고 그 필드 중 하나에서 String 술어를 사용하여 필터링하고 String 대신 List of DataFiles를 리턴합니다. 내가 .map(DataFile::getFileName)
을 수행 할 때 그 DataFile::getFileName
에 (Predicate<String>
인) 내가 Stream<String>
에 내 스트림을 변환하지만 필터를 Stream<DataFile>
로 떠나 여전히 사용하고 싶습니다String 술어를 사용하여 스트림 필터링
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();
}
:
여기 내 코드입니다. 그게 가능하니?