Недавно мне понадобилось сделать «особый случай» сценарий, если в коллекции существует только один элемент. Проверка ...size() == 1
и извлечение с помощью ...iterator.next()
выглядели уродливо, поэтому я создал два метода в классе Home brew Collections :
public class Collections {
public static boolean isSingleValue(Collection values) {
return values.size() == 1;
}
public static T singleValue(Collection values) {
Assert.isTrue(isSingleValue(values));
return values.iterator().next();
}
}
. Несколько дней назад я обнаружил, что в Guava есть метод с именем Iterables.getOnlyElement . Он покрывает мою потребность и заменяет singleValue
, но я не могу найти соответствие для isSingleValue
. Это по дизайну? Стоит ли размещать запрос функции для метода Iterables.isOnlyElement
?
РЕДАКТИРОВАТЬ: Так как голосов было мало, я решил открыть улучшение по гуаве-выпуск 957 . Окончательное разрешение -«WontFix». Аргументы очень похожи на те, что предоставил Томас/Ксерксесс.