728x90
- 인터페이스의 기본 메서드 재정의:
interface MyInterface {
default void myMethod() {
System.out.println("Default method");
}
}
// 람다 표현식을 사용하여 기본 메서드를 재정의
MyInterface obj = () -> System.out.println("Overridden method");
obj.myMethod(); // "Overridden method" 출력
- 제네릭 메서드 사용:
interface MyInterface<T> {
void myMethod(T value);
}
// 람다 표현식을 사용하여 제네릭 메서드 구현
MyInterface<String> obj = (value) -> System.out.println(value);
obj.myMethod("Hello"); // "Hello" 출력
- 메서드 참조 활용:
interface MyInterface {
void myMethod();
}
// 메서드 참조를 사용하여 람다 표현식 대신 메서드를 전달
void myMethodImplementation() {
System.out.println("Method reference");
}
MyInterface obj = this::myMethodImplementation;
obj.myMethod(); // "Method reference" 출력
- 변수 캡처:
interface MyInterface {
void myMethod();
}
// 람다 표현식에서 외부 변수 사용
int num = 10;
MyInterface obj = () -> System.out.println(num);
obj.myMethod(); // 10 출력
- 조건부 실행:
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" 출력
- 예외 처리:
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" 출력
- 병렬 처리:
List<Integer> numbers = List.of(1, 2, 3, 4, 5);
// 병렬 처리를 위한 람다 표현식 사용
numbers.parallelStream().forEach(System.out::println);
- 커스텀 컬렉션 연산:
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 출력
- Optional 값 처리:
Optional<String> optionalValue = Optional.of("Hello");
// Optional 값에 대한 람다 표현식 사용
optionalValue.ifPresent(value -> System.out.println("Value: " + value));
- 람다 표현식의 명시적 형변환:
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 |