Я создал следующий метод для преобразования строки, содержащей список, разделенный запятыми, в набор, в конечном итоге применив одну или несколько функций.
Безопасно ли добавлять аннотацию @SafeVarargs
в моем случае?
Функция map
для Stream
ожидает <? super String, ? extends String>
в своей подписи, поэтому я предполагаю, что не выполняю никаких небезопасных операций.Я прав?
Можете ли вы привести примеры небезопасных операций в данном конкретном случае?
@SafeVarargs
public static Set<String> commaSeparatedToSet(String str, Function<String, String>... functions) {
if (str != null) {
Stream<String> stream = Stream.of(str.split(",", -1))
.filter(item -> StringUtils.isNotBlank(item))
.map((elem) -> elem.trim());
if (functions != null) {
for (Function<String, String> function : functions) {
stream.map(function);
}
}
return stream
.collect(Collectors.toSet());
} else {
return Collections.emptySet();
}
}