반응형
Java 8 이상 부터는 익명 내부 클래스를 Lambda 식으로 변환하여 코드를 간결하게 바꿀수 있게 되었다.
익명 클래스에 대해서는 아래 참고 포스팅 참고 바란다.
많이 쓰이는
Eclipse 에서는 익명클래스에 커서 두고 Ctrl+1 을 눌러서 replace with lambda 를 클릭해서 자동으로 바꿀수도 있고,
Intellij 에서는 옵션+엔터를 해서 replace with lambda 를 만날수 있다.
그럼 이 Lambda 식이 뭐고 어떻게 변환이 되는지 간단하게 예제 코드로 알아보자.
(이하는 편의상 람다라고 칭함)
우선 chatGPT 에 간단하게 바꾸는 예제 코드를 알려달라고 하면 Runnable 인터페이스를 예시로 들어주었다.
아래와 같다.
익명클래스 예제 코드 | public class Main { public static void main(String[] args) { // 익명 클래스를 사용한 Runnable 구현 Runnable runnable = new Runnable() { @Override public void run() { System.out.println("Hello from anonymous class!"); } }; runnable.run(); } } |
람다식으로 변환한 코드 | public class Main { public static void main(String[] args) { // 람다식을 사용한 Runnable 구현 Runnable runnable = () -> System.out.println("Hello from lambda!"); runnable.run(); } } |
한가지만 더 예를 들면
우선 익명클래스를 사용하기 위해서는 메서드 1개만 존재하는 Interface를 만든다.
참고로 메서드가 반드시 1개만 존재해야 람다식으로 변환 가능하다.
간단하게 Test라는 Interface 가 존재한다.
public interface Test { void test(); } |
익명클래스 예제 코드 | Test test = new Test(){ @Overide public void test() { log.info("lambda Test"); } }; |
람다식으로 변환한 코드 | Test test = new Test(() -> log.info("lambda Test");); |
참고 포스팅
https://thenicesj.tistory.com/496
반응형
'IT > Java' 카테고리의 다른 글
전략 패턴 예제(Strategy Pattern) (15) | 2024.10.25 |
---|---|
템플릿 메서드 패턴 예제(Template Method Pattern) (12) | 2024.10.24 |
[Spring Security] WebSecurityConfigurerAdapter / antMatchers 관련(SecurityFilterChain / requestMatchers) (15) | 2024.10.21 |
[Error] Executing an update/delete query (9) | 2024.10.20 |
[Error] Encoded password does not look like BCrypt (12) | 2024.10.19 |
댓글