Java Reflection Action 을 읽고 정리하는 포스팅입니다.
Dog
는 Dog 클래스를 나타내는 메타 개체, fido
개체는 Dog의 인스턴스. instanceOf
는 base level 개체와 metalevel 개체를 연결메서드 | 설명 |
---|---|
Method getMethod(String name, Class[] parameterTypes) | 두 번째 매개변수(parameterTypes )로 지정된 서명을 사용하여 대상 Class 객체의 공개(public ) 메서드(선언되거나 상속됨)를 나타내는 Method 객체를 반환 |
Method[] getMethods() | 대상 Class 객체에서 지원하는 모든 공개(public ) 메서드(선언되거나 상속됨)를 나타내는 Method 객체의 배열을 반환 |
Method getDeclaredMethod(String name, Class[] parameterTypes) | 두 번째 매개변수(parameterTypes )로 지정된 서명을 사용하여 (부모를 제외하고) 대상 Class 객체의 선언된 메서드를 나타내는 Method 객체를 반환 |
Method[] getDeclaredMethods() | 대상 Class 객체에 선언된 (부모를 제외하고) 모든 메서드를 나타내는 메서드 개체의 배열을 반환합니다. |
getMethod
와 getDeclaredMethod
는 parameterTypes
가 null
인 경우 인자가 0개인 메서드를 가져옴NoSuchMethodException
- 메서드를 찾지 못햇을 경우SecurityException
- 외부 패키지에서 메서드를 가져올 때 서명 정보가 맞지 않는 경우메서드 | 설명 |
---|---|
String getName() | 대상 클래스 객체의 완전한 이름(fully qualified name )을 반환 |
Class getComponentType() | 대상 객체가 배열에 대한 Class 객체인 경우, 구성 요소 유형을 나타내는 Class 객체를 반환. ex: int[][].class.getComponentType() 는 int[] , |
boolean isArray() | 대상 Class 객체가 배열인 경우 true 반환 |
boolean isInterface() | 대상 Class 객체가 인터페이스인 경우 true 반환 |
boolean isPrimitive() | 대상 Class 객체가 기본(primitive) 타입 (int , char , boolean 등) 혹은 void 인 경우 true 반환 |
메서드 | 설명 |
---|---|
Class getDeclaringClass() | 메서드를 선언한 Class를 반환 |
Class[] getExceptionTypes() | 메서드에 발생한다고 선언된 예외의 Class의 배열을 반환 |
int getModifiers() | 메서드에 대한 수정자를 int로 반환, (int에 대응되는 값은 java.lang.reflect.Modifier에 상수로 선언) |
String getName() | 메서드 이름 |
Class[] getParameterTypes() | 선언된 순서대로 메서드의 형식 매개 변수의 Class의 배열을 반환 |
Class getReturnType() | 메서드가 반환하는 유형을 나타내는 Class를 반환 |
Object invoke(Object obj, Object[] args) | Object 배열(args )에 지정된 인수를 사용하여 지정된 객체에서 이 Method 객체가 나타내는 메서드를 호출 |
IllegalAccessException
- 해당 메서드를 지원하지 않는 객체에서 invoke
호출한 경우IllegalArgumentException
- invoke
인수가 잘못된 경우InvocationTargetException
- invoke
시 호출한 메서드 내부에서 예외가 발생했을때 발생한 예외의 래퍼(wrapped) 클래스메서드 | 설명 |
---|---|
Class[] getInterfaces() | 대상 Class의 직접적인 부모 인터페이스의 Class의 배열을 반환 |
Class getSuperclass() | 대상 Class의 직접적인 부모 클래스를 나타내는 Class를 반환하거나 대상이 Object , 인터페이스, 기본(primitive) 타입 또는 void 인 경우 null 을 반환 |
boolean isAssignableFrom(Class cls) | 대상 Class가 나타내는 클래스 또는 인터페이스가 지정된 Class 매개변수(cls )의 부모 클래스 또는 부모 인터페이스와 같은 경우에만 true 를 반환 |
boolean isInstance(Object obj) | 지정된 Object 가 대상 Class가 나타내는 객체와 할당 호환이 가능한 경우에만 true 를 반환 |
메서드 | 설명 |
---|---|
Field getField(String name) | 이름과 일치하는 클래스 또는 인터페이스의 public 멤버 필드를 나타내는 Field 객체를 반환 |
Field[] getFields() | 클래스 또는 인터페이스의 모든 액세스 가능한 공용 필드를 나타내는 Field 객체의 배열을 반환 |
Field getDeclaredField(String name) | 이름과 일치하는 클래스 또는 인터페이스의 선언 필드를 나타내는 Field 객체를 반환 |
Field[] getDeclaredFields() | 클래스 또는 인터페이스에 선언된 각 필드를 나타내는 Field 객체의 배열을 반환 |
(작성중...)