강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

진우님의 프로필 이미지
진우

작성한 질문수

스프링 핵심 원리 - 고급편

JDK 동적 프록시 - 적용1

Proxy.newProxyInstance 의 두번째 인자가 배열인 이유를 이해하지 못하겠습니다.

작성

·

468

0

예를들어

interface TestInterfaceA {

    void testA();

}

interface TestInterfaceB {

    void testB();

}

두개가 있다고 가정했을때

publiic TestImpl implements TestInterfaceA, TestInterfaceB {

        void testA(){

        }

        void testB(){

        }

}

이렇게 인터페이스를 한개이상 구현할수 있어서

배열로 들어가야 되는건가요??

답변 1

2

안녕하세요. 진우님, 공식 서포터즈 OMG입니다.

코드 레벨에서 보니 왜 배열처리인지 확인할 수 있었습니다.

Proxy클래스에서 newProxyInstance 구현 내용을 보니 getProxyConstructor에 인자로 배열을 넘기더라구요,

getProxyConstructor()에서는 배열의 길이가 1인지 아닌지에 따라 1인경우는 배열의 0번째 인자를 가지고 로직이 흘러가더라구요.

주석 내용을 보니 인터페이스가 하나 일 경우 최적화 로직을 돌리네요 .

 

 

 

감사합니다.

진우님의 프로필 이미지
진우

작성한 질문수

질문하기