Notice
Recent Posts
Recent Comments
Link
Hello, Android!
리플렉션 (Reflection) 본문
리플렉션은 런타임에서 프로그램의 특정 구조(객체, 함수, 프로퍼티)를 분석하는 기법이다
예를들어 함수의 매개변수로 클래스 타입을 선언하였다면
함수 실행중 전달된 클래스의 이름, 프로퍼티, 메서드 등의 정보를 알아낼수 있다
이는 클래스에 대한 정보를 표현하는 클래스 레퍼런스로부터 알아낼수 있으며
특정 클래스의 정보를 분석하기 위해 클래스 타입이느 KClass<*>로 정의하고
클래스 레퍼런스는 클래스명::class 와 같이 표현한다
우선 Person::class 를 이용하여 Person클래스의 정보를 출력하였다
출력한 결과로는 class com.example.edu.Person 클래스가 속한 패키지명과 클래스명이 출력된다
info에 Person클래스의 정보를 담아 프로퍼티 정보와 메서드 정보를 반복문을 통하여 출력하였다
출력 결과 프로퍼티는 예상한 그래도 출력되었지만
Person클래스의 함수 정보를 출력했더니 equals, hashCode, toString이 기본적으로 포함되어 있다