구아바-개요

구아바는 무엇입니까?

Guava는 오픈 소스, Java 기반 라이브러리이며 많은 프로젝트에서 사용되는 Google의 많은 핵심 라이브러리를 포함합니다. 이는 최상의 코딩 관행을 용이하게하고 코딩 오류를 줄이는 데 도움이됩니다. 컬렉션, 캐싱, 프리미티브 지원, 동시성, 공통 주석, 문자열 처리, I / O 및 유효성 검사를위한 유틸리티 메서드를 제공합니다.

구아바의 장점

  • Standardized − Guava 라이브러리는 Google에서 관리합니다.

  • Efficient − Java 표준 라이브러리에 대한 안정적이고 빠르며 효율적인 확장입니다.

  • Optimized − 라이브러리가 고도로 최적화되었습니다.

  • Functional Programming − Java에 기능 처리 기능을 추가합니다.

  • Utilities − 프로그래밍 응용 프로그램 개발에 정기적으로 필요한 많은 유틸리티 클래스를 제공합니다.

  • Validation − 표준 안전 장치 검증 메커니즘을 제공합니다.

  • Best Practices − 모범 사례를 강조합니다.

다음 코드 스 니펫을 고려하십시오.

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 () 메서드에 null을 전달하는 것에 대해 걱정하지 않습니다.

  • 프로그램이 실행되면 NullPointerException이 발생합니다.

위의 문제를 피하기 위해 이러한 문제가 존재하는 모든 곳에서 null 체크를해야합니다.

위의 문제를 표준화 된 방식으로 해결하기 위해 Guava에서 제공하는 Utility 클래스 인 Optional을 사용하는 방법을 살펴 보겠습니다.

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 − 코드가 널을 적절하게 사용하도록하는 유틸리티 클래스.

  • Optional.of− 파라미터로 사용할 Optional 클래스의 인스턴스를 반환합니다. 전달 된 값이 'null'이 아닌지 확인합니다.

  • Optional.get − Optional 클래스에 저장된 입력 값을 가져옵니다.

Optional 클래스를 사용하면 호출자 메서드가 적절한 매개 변수를 전달하는지 여부를 확인할 수 있습니다.