728x90
  1. 인터페이스의 기본 메서드 재정의:
interface MyInterface {
    default void myMethod() {
        System.out.println("Default method");
    }
}

// 람다 표현식을 사용하여 기본 메서드를 재정의
MyInterface obj = () -> System.out.println("Overridden method");
obj.myMethod(); // "Overridden method" 출력
  1. 제네릭 메서드 사용:
interface MyInterface<T> {
    void myMethod(T value);
}

// 람다 표현식을 사용하여 제네릭 메서드 구현
MyInterface<String> obj = (value) -> System.out.println(value);
obj.myMethod("Hello"); // "Hello" 출력
  1. 메서드 참조 활용:
interface MyInterface {
    void myMethod();
}

// 메서드 참조를 사용하여 람다 표현식 대신 메서드를 전달
void myMethodImplementation() {
    System.out.println("Method reference");
}

MyInterface obj = this::myMethodImplementation;
obj.myMethod(); // "Method reference" 출력
  1. 변수 캡처:
interface MyInterface {
    void myMethod();
}

// 람다 표현식에서 외부 변수 사용
int num = 10;
MyInterface obj = () -> System.out.println(num);
obj.myMethod(); // 10 출력
  1. 조건부 실행:
interface MyInterface {
    void myMethod();
}

// 람다 표현식과 조건문을 결합하여 조건부 실행
boolean condition = true;
MyInterface obj = () -> {
    if (condition) {
        System.out.println("Condition is true");
    } else {
        System.out.println("Condition is false");
    }
};
obj.myMethod(); // "Condition is true" 출력
  1. 예외 처리:
interface MyInterface {
    void myMethod() throws Exception;
}

// 람다 표현식에서 예외 처리
MyInterface obj = () -> {
    try {
        throw new Exception("Exception");
    } catch (Exception e) {
        System.out.println("Caught exception: " + e.getMessage());
    }
};
obj.myMethod(); // "Caught exception: Exception" 출력
  1. 병렬 처리:
List<Integer> numbers = List.of(1, 2, 3, 4, 5);

// 병렬 처리를 위한 람다 표현식 사용
numbers.parallelStream().forEach(System.out::println);
  1. 커스텀 컬렉션 연산:
List<Integer> numbers = List.of(1, 2, 3, 4, 5);

// 커스텀 컬렉션 연산을 위한 람다 표현식 사용
int sum = numbers.stream()
                .filter(n -> n % 2 == 0)
                .mapToInt(n -> n * 2)
                .sum();
System.out.println(sum); // 12 출력
  1. Optional 값 처리:
Optional<String> optionalValue = Optional.of("Hello");

// Optional 값에 대한 람다 표현식 사용
optionalValue.ifPresent(value -> System.out.println("Value: " + value));
  1. 람다 표현식의 명시적 형변환:
Object lambdaExpression = (Runnable) () -> System.out.println("Lambda expression");

// 명시적 형변환을 통해 람다 표현식 실행
((Runnable) lambdaExpression).run(); // "Lambda expression" 출력

내저장소 바로가기 luxury515

'Back-end > 기타' 카테고리의 다른 글

람다 10가지 (중급편)  (0) 2023.05.16
람다 10가지 (초급편)  (0) 2023.05.16
10가지 Lambda  (0) 2023.05.16
시간 전역처리를 어노테이션 하나로 끝내자!  (0) 2023.04.17
RequestBodyAdvice 와 ResponseBodyAdvice 사용법  (0) 2023.04.17

+ Recent posts