Guava — это библиотека с открытым исходным кодом, основанная на Java и содержащая множество основных библиотек Google, которые используются во многих их проектах. Это облегчает лучшие практики кодирования и помогает уменьшить ошибки кодирования. Он предоставляет служебные методы для коллекций, кэширования, поддержки примитивов, параллелизма, общих аннотаций, обработки строк, ввода-вывода и проверок.
Преимущества гуавы
-
Стандартизировано — библиотека Guava управляется Google.
-
Эффективный — это надежное, быстрое и эффективное расширение стандартной библиотеки Java.
-
Оптимизировано — библиотека высоко оптимизирована.
-
Функциональное программирование — добавляет функциональные возможности обработки в Java.
-
Утилиты — предоставляет множество классов утилит, которые регулярно требуются при разработке программных приложений.
-
Проверка. Предоставляет стандартный отказоустойчивый механизм проверки.
-
Лучшие практики — Делается акцент на лучших практиках.
Стандартизировано — библиотека Guava управляется Google.
Эффективный — это надежное, быстрое и эффективное расширение стандартной библиотеки Java.
Оптимизировано — библиотека высоко оптимизирована.
Функциональное программирование — добавляет функциональные возможности обработки в Java.
Утилиты — предоставляет множество классов утилит, которые регулярно требуются при разработке программных приложений.
Проверка. Предоставляет стандартный отказоустойчивый механизм проверки.
Лучшие практики — Делается акцент на лучших практиках.
Рассмотрим следующий фрагмент кода.
public class GuavaTester { public static void main(String args[]) { GuavaTester guavaTester = new GuavaTester(); Integer a = null; Integer b = new Integer(10); System.out.println(guavaTester.sum(a,b)); } public Integer sum(Integer a, Integer b) { return a + b; } }
Запустите программу, чтобы получить следующий результат.
Exception in thread "main" java.lang.NullPointerException at GuavaTester.sum(GuavaTester.java:13) at GuavaTester.main(GuavaTester.java:9)
Ниже приведены проблемы с кодом.
-
sum () не заботится о каких-либо параметрах, которые должны быть переданы как нулевые.
-
Вызывающая функция также не беспокоится о случайной передаче нулевого метода sum ().
-
Когда программа запускается, возникает исключение NullPointerException.
sum () не заботится о каких-либо параметрах, которые должны быть переданы как нулевые.
Вызывающая функция также не беспокоится о случайной передаче нулевого метода sum ().
Когда программа запускается, возникает исключение NullPointerException.
Чтобы избежать вышеупомянутых проблем, нулевая проверка должна быть сделана в каждом месте, где такие проблемы присутствуют.
Давайте рассмотрим использование Optional, класса утилит, предоставляемого Guava, для стандартного решения вышеуказанных проблем.
import com.google.common.base.Optional; public class GuavaTester { public static void main(String args[]) { GuavaTester guavaTester = new GuavaTester(); Integer invalidInput = null; Optional<Integer> a = Optional.of(invalidInput); Optional<Integer> b = Optional.of(new Integer(10)); System.out.println(guavaTester.sum(a,b)); } public Integer sum(Optional<Integer> a, Optional<Integer> b) { return a.get() + b.get(); } }
Запустите программу, чтобы получить следующий результат.
Exception in thread "main" java.lang.NullPointerException at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:210) at com.google.common.base.Optional.of(Optional.java:85) at GuavaTester.main(GuavaTester.java:8)
Давайте разберемся с важными концепциями вышеуказанной программы.
-
Необязательно — служебный класс, чтобы код правильно использовал нуль.
-
Optional.of — возвращает экземпляр класса Optional, который будет использоваться в качестве параметра. Он проверяет переданное значение, чтобы не быть «нулевым».
-
Optional.get — получает значение ввода, хранящегося в классе Optional.
Необязательно — служебный класс, чтобы код правильно использовал нуль.
Optional.of — возвращает экземпляр класса Optional, который будет использоваться в качестве параметра. Он проверяет переданное значение, чтобы не быть «нулевым».
Optional.get — получает значение ввода, хранящегося в классе Optional.
Используя класс Optional, вы можете проверить, передает ли метод вызывающей стороны правильный параметр или нет.