스프링/스프링 핵심 원리 - 고급편

19. 익명 클래스

sdafdq 2024. 1. 15. 03:44

익명 클래스는 객체를 생성함과 동시에 오버라이드를(클래스를 정의) 할 수 있다.

 

 

@Test
void templateMethodV2(){
    AbstractTemplate template1 = new AbstractTemplate() {
        @Override
        protected void call() {
            log.info("비즈니스 로직1 실행");
        }
    };

    AbstractTemplate template2 = new AbstractTemplate() {
        @Override
        protected void call() {
            log.info("비즈니스 로직2 실행");
        }
    };

    template1.execute();
    template2.execute();
}

저렇게 가상 클래스를 new 하면 인텔리제이가 오버라이드 하는 틀을 만들어 준다.

 

이거면 미사여구가 많긴 하지만, 그래도 비즈니스 로직이 보인다.

 

잘 된다.

 

참고로, 익명 클래스의 클래스 명은

 

getClass() 해서 로그로 찍어보면

그 익명 내부 클래스를 정의한 클래스이름$넘버

가 된다.

 

 

 

미사여구가 많다는 점이 좀 그렇긴 하다.