Google Guava это библиотека в которой ребята из Google решили собрать разные базовые и универсальные методы, которые могут пригодится в любом Java проекте. В этом посте я приведу пример использования одного из её классов — Preconditions для проверки предусловий в методах.
Прежде чем начать её использовать, нужно её подключить. Счастливые пользователи Maven, должны добавить следующее в pom.xml:
Класс Preconditions помогает упростить код для проверки предусловий в ваших методах. Например, если у вас есть код, похожий на этот:
то он может быть упрощён до
Обратите внимание, что условие изменилось: в качестве аргумента вы указываете выражение, которое должно быть истинным (также как в случае c assert()).
В классе также присутствуют и другие методы, которые отличаются только типом возбуждаемых исключений:
Соответствие методов с типами исключений легко запомнить, т.к. у них часть названия совпадают (не считая тех, которые оперируют с индексами).
(Обратите внимание, что методы поддерживают только модификатор %s.)
Также вам может быть интересна статья Google Guava vs Apache Commons for Argument Validation в которой приводится сравнение Guava и Apache Commons.
Прежде чем начать её использовать, нужно её подключить. Счастливые пользователи Maven, должны добавить следующее в pom.xml:
Класс Preconditions помогает упростить код для проверки предусловий в ваших методах. Например, если у вас есть код, похожий на этот:
то он может быть упрощён до
Обратите внимание, что условие изменилось: в качестве аргумента вы указываете выражение, которое должно быть истинным (также как в случае c assert()).
В классе также присутствуют и другие методы, которые отличаются только типом возбуждаемых исключений:
Метод | Тип исключения |
checkArgument | IllegalArgumentException |
checkNotNull | NullPointerException |
checkElementIndex | IndexOutOfBoundsException |
checkPositionIndex | IndexOutOfBoundsException |
Соответствие методов с типами исключений легко запомнить, т.к. у них часть названия совпадают (не считая тех, которые оперируют с индексами).
В случае, если вам понадобилось использовать не простое текстовое сообщение, а содержащее также другие переменные, то не нужно использовать конкатенацию, т.к. это отрицательно сказывается на производительности. Вместо этого, вы можете использовать printf-подобный модификатор %s с переменным количество аргументов, у любого из вышеприведённых методов:
(Обратите внимание, что методы поддерживают только модификатор %s.)
Методы checkNotNull() и checkElementIndex() после проверки возвращают свои аргументы, а это значит, что их можно использовать в присвоении:
Также вам может быть интересна статья Google Guava vs Apache Commons for Argument Validation в которой приводится сравнение Guava и Apache Commons.
Комментариев нет:
Отправить комментарий