TIL

250107 화 TIL

파란배개 2025. 1. 7. 17:41

Lombok이란?

Lombok은 Java 개발에서 반복적으로 작성해야 하는 코드(예: Getter, Setter, 생성자, toString 등)를 자동으로 생성해주는 라이브러리이다. 이를 통해 코드의 가독성을 높이고, 개발 생산성을 향상시킬 수 있다.

주요 어노테이션

  • @Getter: 클래스의 필드에 대한 Getter 메서드를 자동으로 생성.
  • @Setter: 클래스의 필드에 대한 Setter 메서드를 자동으로 생성.
  • @AllArgsConstructor: 모든 필드를 포함하는 생성자를 자동으로 생성.
  • @ToString: 객체를 문자열로 출력할 때, 필드의 값을 포함한 문자열을 자동으로 생성.
  • @EqualsAndHashCode: 객체의 동등성(equals)과 해시코드(hashCode)를 자동으로 생성.

Lombok 사용 예제

import lombok.*;

@Getter
@Setter
@AllArgsConstructor
@ToString
@EqualsAndHashCode
public class User {
    private String name;
    private int age;
}

위 코드는 Lombok을 사용하여 User 클래스의 Getter, Setter, 생성자, toString, equals, hashCode를 자동으로 생성한다.

Optional란?

Optional<T>는 Java 8에서 도입된 클래스로, 값이 있을 수도 있고 없을 수도 있는 상황을 안전하게 처리하기 위해 사용한다. Optional은 주로 메서드가 반환할 결과가 없을 때 null을 반환하는 대신 사용된다.

Optional 생성

  • 값이 있는 경우: Optional.of(값)
  • 값이 없는 경우: Optional.empty()
  • 값이 있을 수도 있고 없을 수도 있는 경우: Optional.ofNullable(값)

값 확인 및 가져오기

  • isPresent(): 값이 있으면 true, 없으면 false를 반환.
  • get(): 값이 있는 경우 값을 반환한다. 값이 없으면 NoSuchElementException이 발생.
  • orElse(기본값): 값이 있으면 값을 반환하고 없으면 기본값을 반환.
  • orElseGet(Supplier): 값이 있으면 값을 반환하고 없으면 Supplier에서 제공하는 값을 반환.
  • orElseThrow(예외): 값이 있으면 값을 반환하고 없으면 지정한 예외를 던진다.

Optional 사용 예제

import java.util.Optional;

public class OptionalExample {

    public static void main(String[] args) {
        // 값이 있는 경우
        Optional<String> optionalWithValue = Optional.of("Hello, World!");
        if (optionalWithValue.isPresent()) {
            System.out.println("Value is present: " + optionalWithValue.get());
        } else {
            System.out.println("Value is absent");
        }

        // 값이 없는 경우
        Optional<String> optionalEmpty = Optional.empty();
        String valueOrDefault = optionalEmpty.orElse("Default Value");
        System.out.println("Value or default: " + valueOrDefault);
    }
}

Optional<T>는 값이 있을 수도 있고 없을 수도 있는 상황을 안전하게 처리할 수 있도록 도와준다.

'TIL' 카테고리의 다른 글

250109 목 TIL  (0) 2025.01.09
250108 수 TIL  (0) 2025.01.08
TIL 250106 월  (0) 2025.01.06
250106 월 TIL  (0) 2025.01.06
250103 금 TIL  (2) 2025.01.03