리플렉션


리플렉션

리플렉션 자바에서 제공하는 기술로 리플렉션을 사용하면 클래스나 메서드의 메타정보를 동적으로 획득하고, 코드도 동적으로 호출할 수 있다. 컴파일 시점이 아닌 런타임 시점에 정보를 획득할 수 있다. 위의 코드를 보면 호출하는 메서드만 다르고 전체 코드의 흐름은 같다. 호출하는 메서드만 동적으로 처리하면 공통화를 할 수 있다. 이때 사용하는 게 리플렉션이다. java.lang에 있는 Class를 통해서 리플렉션을 적용하려는 클래스의 메타정보를 획득한다. 내부 클래스는 $를 통해서 구분한다. getMethod를 통해서 해당 클래스의 callA / callB 메서드 메타 정보 획득 invoke를 통해서 getMethod를 통해서 획득한 메서드 메타정보로 실제 인스턴스의 메서드를 호출함 Invoke를 호출할 때 target 인스턴스를 넘겨주면 해당 인스턴스의 callA 메서드를 찾아서 실행함 dynamicCall를 통해서 공통 처리 로직을 만들 수 있다. Method는 java.reflect에...


#java #reflection #동적프록시 #리플렉션

원문링크 : 리플렉션