더북(TheBook)

다음은 프록시의 메커니즘을 보여 주려고 만든 예제다. 이 예제는 Integer 객체의 프록시로 배열을 채워 넣고 추적 메시지를 표시한 후 호출을 원래 객체로 전달한다.

Object[ ] values = new Object[1000];


for (int i = 0; i < values.length; i++) {

    Object value = new Integer(i);

    values[i] = Proxy.newProxyInstance(

        null,

        value.getClass().getInterfaces(),

        // 호출 핸들러에 해당하는 람다 표현식

        (Object proxy, Method m, Object[ ] margs) -> {

            System.out.println(value + "." + m.getName() + Arrays.toString(margs));

            return m.invoke(value, margs);

        });

}

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.