• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

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

22.03.27 17:55 작성 조회수 364

0

예를들어

interface TestInterfaceA {

    void testA();

}

interface TestInterfaceB {

    void testB();

}

두개가 있다고 가정했을때

publiic TestImpl implements TestInterfaceA, TestInterfaceB {

        void testA(){

        }

        void testB(){

        }

}

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

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

답변 1

답변을 작성해보세요.

2

OMG님의 프로필

OMG

2022.03.27

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

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

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

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

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

 

 

 

감사합니다.