240509
# 오늘 꼭 기억 해야 할 것!
오늘의 학습
● 1. 람다 표현식
● 2. 함수형 인터페이스
● 3. 익명 클래스
● 4. 스트림
1. 함수형 인터페이스
함수형 인터페이스는 람다식을 다루기 위해서 사용하는 것이다.
함수형 인터페이스는 단 하나의 추상 메서드만 선언된 인터페이스이다.
@FunctionInterface 애너테이션을 생략이 가능하지만 @Override처럼 함수형 인터페이스라는 것을 검증해주기 때문에
꼭 붙혀 주는것이 좋다.
@FunctionInterface // 함수형 인터페이스 검증 애너테이션
public interface MyFunction {
int max(int a, int b);
}
2. 익명 클래스
자바에서는 함수형 인터페이스와 익명클래스를 이용하여 클래스 내부에서 클래스를 구현할 수 있다.
@FunctionInterface // 함수형 인터페이스 검증 애너테이션
public interface MyFunction {
int max(int a, int b);
}
public class AnonymousClass {
public static void main(String[] args) {
// 인터페이스 객체로 생성 후 바로 익명클래스로 바로 구현
MyFunction myFunction = new MyFunction() {
@Override
public int max(int a, int b) {
return a + b;
}
};
int result = myFunction.max(1, 3);
System.out.println(result); // => 결과값 : 4
}
}
람다 표현식은 익명 클래스를 더 간결하게 작성하는 방법 중 하나로 볼 수 있습니다. 일반적으로 함수형 인터페이스를 구현하는 경우에는 익명 클래스 대신 람다 표현식을 사용하는 것이 권장됩니다. 코드가 더 간결해지고 가독성이 향상됩니다.
3. 함수형 인터페이스를 이용한 람다 표현식
@FunctionInterface // 함수형 인터페이스 검증 애너테이션
public interface MyFunction {
int max(int a, int b);
}
public class AnonymousClass {
public static void main(String[] args) {
MyFunction f = (a, b) -> a + b;
int a = f.max(1, 3);
System.out.println(a); // 결과값 => 4
}
}
람다를 이용하여 이러한 방식으로 인터페이스 타입으로 받아서 연산을 처리 할 수 있다.
# 오늘의 회고
오늘은 람다와 스트림 함수형 인터페이스와 익명 클래스를 공부하였다.
람다에서 막히는 부분이 많았지만 그래도 어느정도 이해를 하게 되었다.
'내일배움캠프 Spring 5기' 카테고리의 다른 글
내일배움캠프 19일차 TIL - Iterator (0) | 2024.05.12 |
---|---|
내일배움캠프 18일차 TIL - 람다(메서드 참조, 생성자 참조) (0) | 2024.05.10 |
내일배움캠프 16일차 TIL - 개인 공부 (1) | 2024.05.07 |
내일배움캠프 15일차 TIL - 과제 피드백(Calculator) (0) | 2024.05.03 |
내일배움캠프 14일차 TIL - 웹(Stateless, Stateful) (0) | 2024.05.02 |