2022-10-02 11:44:59
Static imports
Часто замечаю некорректное или даже неуместное использование статического импорта методов и констант в классах.
Либо, наоборот, когда его не используют вовсе.
Хотя на самом деле, правильное применение его:
Убирает ненужный контекст (less verbose)
Уменьшает количество boilerplate кода
Улучшает читабильность кода
Но сложность в использовании или не использовании статического импорта мне понятна:
потому что нет и вряд ли могут быть четкие правила для этого.
: Когда же использовать статический импорт, чтобы получать все эти плюсы?
: Когда его применение ясно и без дополнительного контекста, т.е. того класса, в котором находятся статические методы и константы.
Обычно это общеизвестные классы, но лучше сразу на примерах!
Уместное использование:
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.mock;
import static java.util.stream.Collectors.toList;
import static java.util.Arrays.asList;
import static org.apache.commons.lang3.StringUtils.isNotBlank;
import static java.util.function.Predicate.not;
import static java.time.ZoneOffset.UTC;
import static java.nio.charset.StandardCharsets.UTF_8;
Неуместное использование:
import static java.util.Optional.of;
import static org.junit.jupiter.params.provider.Arguments.of;
import static com.dmdev.spring.entity.User.builder;
import static com.dmdev.spring.converter.DateConverter.convert;
PS. В любом случае статический импорт остается на совести разработчика
706 views08:44