public class

Proxy

extends Object
implements Serializable
java.lang.Object
   ↳ java.lang.reflect.Proxy

Class Overview

Proxy defines methods for creating dynamic proxy classes and instances. A proxy class implements a declared set of interfaces and delegates method invocations to an InvocationHandler.

Summary

Fields
protected InvocationHandler h The invocation handler on which the method calls are dispatched.
Protected Constructors
Proxy(InvocationHandler h)
Constructs a new Proxy instance with the specified invocation handler.
Public Methods
static InvocationHandler getInvocationHandler(Object proxy)
Returns the invocation handler of the specified proxy instance.
static Class<?> getProxyClass(ClassLoader loader, Class...<?> interfaces)
Returns the dynamically built Class for the specified interfaces.
static boolean isProxyClass(Class<?> cl)
Indicates whether or not the specified class is a dynamically generated proxy class.
static Object newProxyInstance(ClassLoader loader, Class[]<?> interfaces, InvocationHandler h)
Returns an instance of the dynamically built class for the specified interfaces.
[Expand]
Inherited Methods
From class java.lang.Object

Fields

protected InvocationHandler h

Since: API Level 1

The invocation handler on which the method calls are dispatched.

Protected Constructors

protected Proxy (InvocationHandler h)

Since: API Level 1

Constructs a new Proxy instance with the specified invocation handler.

Parameters
h the invocation handler for the newly created proxy

Public Methods

public static InvocationHandler getInvocationHandler (Object proxy)

Since: API Level 1

Returns the invocation handler of the specified proxy instance.

Parameters
proxy the proxy instance
Returns
  • the invocation handler of the specified proxy instance
Throws
IllegalArgumentException if the supplied proxy is not a proxy object

public static Class<?> getProxyClass (ClassLoader loader, Class...<?> interfaces)

Since: API Level

Returns the dynamically built Class for the specified interfaces. Creates a new Class when necessary. The order of the interfaces is relevant. Invocations of this method with the same interfaces but different order result in different generated classes. The interfaces must be visible from the supplied class loader; no duplicates are permitted. All non-public interfaces must be defined in the same package.

Parameters
loader the class loader that will define the proxy class
interfaces an array of Class objects, each one identifying an interface that will be implemented by the returned proxy class
Returns
  • a proxy class that implements all of the interfaces referred to in the contents of interfaces
Throws
IllegalArgumentException if any of the interface restrictions are violated
NullPointerException if either interfaces or any of its elements are null

public static boolean isProxyClass (Class<?> cl)

Since: API Level 1

Indicates whether or not the specified class is a dynamically generated proxy class.

Parameters
cl the class
Returns
  • true if the class is a proxy class, false otherwise
Throws
NullPointerException if the class is null

public static Object newProxyInstance (ClassLoader loader, Class[]<?> interfaces, InvocationHandler h)

Since: API Level 1

Returns an instance of the dynamically built class for the specified interfaces. Method invocations on the returned instance are forwarded to the specified invocation handler. The interfaces must be visible from the supplied class loader; no duplicates are permitted. All non-public interfaces must be defined in the same package.

Parameters
loader the class loader that will define the proxy class
interfaces an array of Class objects, each one identifying an interface that will be implemented by the returned proxy object
h the invocation handler that handles the dispatched method invocations
Returns
  • a new proxy object that delegates to the handler h
Throws
IllegalArgumentException if any of the interface restrictions are violated
NullPointerException if the interfaces or any of its elements are null