TIL - 21.01.26

less than 1 minute read

Google guava 란 ?

구글에서 만든 자바로 클린한 코드를 작성 하기 위한 구조들을 만들어 놓은 라이브러리 존재하는 라이브러리 클래스를 Guava로 교체하는 것은 유지보수를 위해 필요한 많은 양의 코드를 줄여주고 잠재적으로 생산성을 높여줍니다. 예를 들어 Apache Commons 프로젝트의 대안이 될 수 있습니다.

파라미터의 Validation을 손쉽게 할 수 있다.

  • checkArgument(조건식, 조건이 false인 경우 메시지)
  • checkNotNull(검사할 변수, Null일 경우 메시지)
  • defaultIfNull(검사할 변수, default값)
import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Preconditions.checkNotNull;
import static org.apache.commons.lang3.ObjectUtils.defaultIfNull;
import static org.apache.commons.lang3.StringUtils.isNotEmpty;

public class User {
  // ... Fields
  public User(Long seq, String name, Email email, String password, int loginCount, LocalDateTime lastLoginAt, LocalDateTime createAt) {
    checkArgument(isNotEmpty(name), "name must be provided.");
    checkArgument(
      name.length() >= 1 && name.length() <= 10,
      "name length must be between 1 and 10 characters."
    );
    checkNotNull(email, "email must be provided.");
    checkNotNull(password, "password must be provided.");

    this.seq = seq;
    this.name = name;
    this.email = email;
    this.password = password;
    this.loginCount = loginCount;
    this.lastLoginAt = lastLoginAt;
    this.createAt = defaultIfNull(createAt, now());
  }
  //...
}

REF