JavaTM Platform
Standard Ed. 6

java.lang.reflect
인터페이스 InvocationHandler

기존의 구현 클래스의 일람:
CompositeDataInvocationHandler , EventHandler , MBeanServerInvocationHandler , RemoteObjectInvocationHandler


public interface InvocationHandler

InvocationHandler 는, 프록시 인스턴스의 호출 핸들러가 구현하는 인터페이스입니다.

프록시 인스턴스에는, 각각 관련한 호출 핸들러가 있습니다. 프록시 인스턴스로 메소드가 불려 가면(자), 메소드의 호출이 encode 되어 각 프로 사계 인스턴스의 호출 핸들러의 invoke 메소드에 발송 됩니다.

도입된 버젼:
1.3
관련 항목:
Proxy

메소드의 개요
 Object invoke (Object  proxy, Method  method, Object [] args)
          프록시 인스턴스로 메소드 호출을 처리해, 그 결과를 돌려줍니다.
 

메소드의 상세

invoke

Object  invoke(Object  proxy,
              Method  method,
              Object [] args)
              throws Throwable 
프록시 인스턴스로 메소드 호출을 처리해, 그 결과를 돌려줍니다. 관련한 프록시 인스턴스로 메소드가 불려 가면(자), 이 메소드는 호출해 핸들러로 불려 갑니다.

파라미터:
proxy - 메소드가 불려 가는 프록시 인스턴스
method - 프록시 인스턴스로 불려 가는 인터페이스 메소드에 대응하는 Method 인스턴스. Method 객체의 선언 클래스는, 이 메소드가 선언된 인터페이스이며, 프록시 클래스가 메소드를 상속하는 프록시 인터페이스의 슈퍼 인터페이스도 있는
args - 프록시 인스턴스에서의 메소드 호출시에게 건네지는 인수치를 포함하는 객체 배열. 인터페이스 메소드가 인수를 취하지 않는 경우,null 가 된다. 원시형 인수는 java.lang.Integer 또는 java.lang.Boolean 와 같이 적절한 원시형 래퍼 클래스의 인스턴스에 랩 된다
반환값:
프록시 인스턴스에서의 메소드 호출로부터의 반환값. 인터페이스 메소드의 선언된 반환값의 형태가 원시형의 경우는, 이 메소드의 반환값은 대응하는 프리미티브(primitive) 래퍼 클래스의 인스턴스가 아니면 안된다. 그렇지 않은 경우, 선언된 반환값의 형태에 할당할 수 있는 형태가 아니면 안된다. 이 메소드에 의한 반환값이 null 로, 인터페이스 메소드의 반환값이 원시형의 경우, 프록시 인스턴스에서의 메소드 호출에 의해 NullPointerException 가 throw 된다. 이외의 케이스로, 이 메소드의 반환값과 상기와 같은 인터페이스 메소드의 선언된 반환값의 형태와의 사이에 호환성이 없는 경우,ClassCastException 는 프록시 인스턴스에서의 메소드 호출에 의해 throw 되게 된다
예외:
Throwable - 프록시 인스턴스에서의 메소드 호출로부터 throw 되는 예외. 이 예외의 타입은, 인터페이스 메소드의 throws 절에 선언되는 예외 타입인가, 또는, 체크되지 않는 예외 타입의 java.lang.RuntimeException 또는 java.lang.Error 에 할당할 수 없으면 안 된다. 이 메소드에 의해 throw 되는 체크 예외가, 인터페이스 메소드의 throws 절에 선언된 예외 타입에 할당할 수 없는 경우, 이 메소드가 throw 한 예외를 포함하는 UndeclaredThrowableException 가 프록시 인스턴스에서의 메소드 호출에 의해 throw 되게 되는
관련 항목:
UndeclaredThrowableException

JavaTM Platform
Standard Ed. 6

버그의 보고와 기능의 요청
한층 더 자세한 API 레퍼런스 및 개발자 문서에 대해서는,Java SE 개발자용 문서를 참조해 주세요. 개발자전용의 상세한 해설, 개념의 개요, 용어의 정의, 버그의 회피책, 및 코드 실례가 포함되어 있습니다.

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.