'invoke'에 해당되는 글 2건
- 2006/12/26 Method Reflection ... (2)
- 2006/12/26 Method Reflection J2SE API... (1) (2)
//refection 사용 예
public String void reflection(Object oObject, String strMethodNm, int index)
{
final Class[] typePara = new Class[] {int.class};
// typePara에 의해 지정된 클래스 public 메소드를 받아옴
Method mField = oObject.getClass().getMethod(strMethodNm, typePara);
// 메소드에 사용되는 인자
Object[] strParam = new Object[] {new Integer(index)};
Object retObj = mField.invoke(oDw, strParam);
return (String) retObj; //타입 캐스팅
}
Method Reflection의 경우 유용하게 쓸수도 있겠지만.. 써본결과
App의 성능을 현저히 떨어뜨리게 되므로, 되도록이면 사용을 자제하는것이
좋을거 같다는... ㅠㅠ
boolean equals (Object obj) : Method 가 지정된 오브젝트와 비교합니다.
Class getDeclaringClass () :
이 Method 오브젝트에 의해 나타내지는 메소드를 선언하는 클래스 또는 인터페이스를 나타내는 Class 오브젝트를 돌려줍니다.
Class [] getExceptionTypes () :
이 Method 오브젝트로 나타내지는 기본으로 되는 메소드에 의해 슬로우 되도록(듯이) 선언되고 있는 예외의 형태를 나타내는 Class 오브젝트의 배열을 돌려줍니다.
int getModifiers () : Method 오브젝트에 의해 나타내지는 메소드의 Java 언어 수식자를 정수로서 돌려줍니다.
String getName () : 이 Method 오브젝트가 나타내는 메소드의 이름을 String 로서 돌려줍니다.
Class [] getParameterTypes () : Method 오브젝트에 의해 나타내지는 메소드의 가파라미터형을 선언순서로 나타내는 Class 오브젝트의 배열을 돌려줍니다.
Class getReturnType () : 이 Method 오브젝트에 의해 나타내지는 메소드의 가짜의 반환값의 형태를 나타내는 Class 오브젝트를 돌려줍니다.
int hashCode () : Method 의 해시 코드를 돌려줍니다.
Object invoke (Object obj, Object [] args) : 이 Method 오브젝트에 의해 나타내지는 기본이 되는 메소드를, 지정한 오브젝트에 대해서 지정한 파라미터로 호출합니다.
String toString () : 이 Method 를 기술하는 캐릭터 라인을 돌려줍니다.
invoke
public Object invoke(Object obj,
Object [] args)
throws IllegalAccessException ,
IllegalArgumentException ,
InvocationTargetException 이 Method 오브젝트에 의해 나타내지는 기본이 되는 메소드를, 지정한 오브젝트에 대해서 지정한 파라미터로 호출합니다. 개별의 파라미터는 원시적가파라미터와 일치시키기 위해서(때문에) 자동적으로 랩 해제되어 원시적 및 참조 파라미터는 양쪽 모두 필요에 따라서 메소드 호출 변환의 대상이 됩니다.
기본이 되는 메소드가 static 의 경우, 지정된 obj 인수는 무시됩니다. 이 인수가 null 의 경우도 있습니다.
기본이 되는 메소드에 의해 요구되는 가파라미터수가 0 의 경우, 지정된 args 배열은 길이 0 또는 null 가 됩니다.
기본이 되는 메소드가 인스턴스 메소드의 경우, 동적 메소드 look 업을 사용해 호출을 해 타겟 오브젝트의 실행시의 형태에 근거해 오버라이드(override)가 실행됩니다 ( 「The Java Language Specification, Second Edition」의 섹션 15.12. 4.4 를 참조).
기본이 되는 메소드가 static 의 경우, 메소드를 선언한 클래스가 아직 초기화되어 있지 않을 때는 이 클래스가 초기화됩니다.
메소드가 정상적으로 완료하면(자), 메소드에 의한 값이 호출해 측에 돌려주어집니다. 이 값이 원시적형의 경우, 최초로 오브젝트내에 적절한 방법으로 랩 됩니다. 기본이 되는 메소드의 반환값의 형태가 void 의 경우, 호출은 null 를 돌려줍니다.
파라미터:
obj - 기본이 되는 메소드의 호출원의 오브젝트
args - 메소드 호출에 사용되는 인수
반환값: 이 오브젝트가 나타내는 메소드를, 파라미터 args 를 사용해 obj 에 디스팟치 한 결과
예외:
IllegalAccessException - 이 Method 오브젝트가 Java 언어 액세스 제어를 실시해, 기본이 되는 메소드에 액세스 할 수 없는 경우
IllegalArgumentException - 메소드가 인스턴스 메소드이며, 지정된 오브젝트 인수가 기본이 되는 메소드 (또는 그 서브 클래스나 구현측)를 선언하는 클래스 또는 인터페이스의 인스턴스가 아닌 경우, 열매 파라미터수와 가파라미터수가 다른 경우, 원시적 인수의 랩 해제 변환이 실패했을 경우, 또는 랩 해제 후, 메소드 호출 변환에 의해 파라미터치를 대응하는 가파라미터형으로 변환할 수 없는 경우
InvocationTargetException - 기본이 되는 메소드가 예외를 슬로우 하는 경우
NullPointerException - 지정된 오브젝트가 null 로, 메소드가 인스턴스 메소드의 경우
ExceptionInInitializerError - 이 메소드에 의한 초기화가 실패했을 경우

이올린에 북마크하기
Prev
Rss Feed