суббота, 24 сентября 2011 г.

Google Guava: Preconditions class

Google Guava это библиотека в которой ребята из Google решили собрать разные базовые и универсальные методы, которые могут пригодится в любом Java проекте. В этом посте я приведу пример использования одного из её классов — Preconditions для проверки предусловий в методах.

Прежде чем начать её использовать, нужно её подключить. Счастливые пользователи 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.

Комментариев нет:

Отправить комментарий