Мне совершенно не нравится тот факт, что ваш List
может содержать null
, какой смысл в этом вообще?Почему бы вам не выполнить рефакторинг и вернуть вместо него пустой .Предполагая, что вы не можете изменить это (пожалуйста, проверьте, если можете), не делайте этого в одной строке, просто потому, что это причудливо - это будет очень нечитаемо в данном конкретном случае.Кроме того, я категорически против таких вспомогательных методов, как CollectionsUtils
или StringUtils
и т. Д., Которые только ухудшают чтение кода;не говоря уж о всех из них (хотя guava
есть некоторые, которые мне действительно нравятся и которые я использую)
Вместо этого, сделайте этот метод более простым и приятным для взгляда:
List<Book> books = library.getBooks();
if(books != null && !books.isEmpty()) {
books.add(book);
} else {
library.setBooks(Collections.singletonList(book));
}
Сколько секунд вам понадобилось, чтобы понять эту логику?Как, например, в отличие от другого ответа здесь (ничего личного, вы сделали отличное замечание).
Но это все еще вызывает некоторые вопросы лично для меня.Почему бы не переместить всю эту логику в класс Library
?Что если вы хотите, чтобы позже добавил еще одну книгу в библиотеку?Поскольку вы использовали Collections.singletonList
, который является неизменным, вы не сможете.