public abstract class AbstractInvocationHandler extends Object implements InvocationHandler
Modifier and Type | Class and Description |
---|---|
protected static class |
AbstractInvocationHandler.MethodTranslator |
Constructor and Description |
---|
AbstractInvocationHandler() |
Modifier and Type | Method and Description |
---|---|
boolean |
equals(Object obj)
By default delegates to
Object.equals(java.lang.Object) so instances are only equal if they are identical. |
protected abstract Object |
handleInvocation(Object proxy,
Method method,
Object[] args)
invoke(java.lang.Object, java.lang.reflect.Method, java.lang.Object[]) delegates to this method upon any method invocation on the proxy instance, except Object.equals(java.lang.Object) ,
Object.hashCode() and Object.toString() . |
int |
hashCode()
By default delegates to
Object.hashCode() . |
Object |
invoke(Object proxy,
Method method,
Object[] args)
proxy.hashCode() delegates to hashCode()
proxy.toString() delegates to toString()
proxy.equals(argument) returns true if:
proxy and argument are of the same type
and equals(java.lang.Object) returns true for the InvocationHandler of argument
other method calls are dispatched to handleInvocation(java.lang.Object, java.lang.reflect.Method, java.lang.Object[]) . |
String |
toString()
By default delegates to
Object.toString() . |
public final Object invoke(Object proxy, Method method, Object[] args) throws Throwable
proxy.hashCode()
delegates to hashCode()
proxy.toString()
delegates to toString()
proxy.equals(argument)
returns true if:
proxy
and argument
are of the same type
equals(java.lang.Object)
returns true for the InvocationHandler
of argument
handleInvocation(java.lang.Object, java.lang.reflect.Method, java.lang.Object[])
.
invoke
in interface InvocationHandler
proxy
- the proxy instance that the method was invoked onmethod
- the Method
instance corresponding to the interface method invoked on the proxy instance. The
declaring class of the Method
object will be the interface that the method was declared in, which may be a
superinterface of the proxy interface that the proxy class inherits the method through.args
- an array of objects containing the values of the arguments passed in the method invocation on the proxy
instance, or null
if interface method takes no arguments. Arguments of primitive types are wrapped in
instances of the appropriate primitive wrapper class, such as java.lang.Integer
or
java.lang.Boolean
.Throwable
- the exception to throw from the method invocation on the proxy instance.protected abstract Object handleInvocation(Object proxy, Method method, Object[] args) throws Throwable
invoke(java.lang.Object, java.lang.reflect.Method, java.lang.Object[])
delegates to this method upon any method invocation on the proxy instance, except Object.equals(java.lang.Object)
,
Object.hashCode()
and Object.toString()
. The result will be returned as the proxied method's return value.
Unlike invoke(java.lang.Object, java.lang.reflect.Method, java.lang.Object[])
, args
will never be null. When the method has no parameter, an empty array is passed in.
proxy
- the proxy instance that the method was invoked onmethod
- the Method
instance corresponding to the interface method invoked on the proxy instance. The
declaring class of the Method
object will be the interface that the method was declared in, which may be a
superinterface of the proxy interface that the proxy class inherits the method through.args
- an array of objects containing the values of the arguments passed in the method invocation on the proxy
instance, or null
if interface method takes no arguments. Arguments of primitive types are wrapped in
instances of the appropriate primitive wrapper class, such as java.lang.Integer
or
java.lang.Boolean
.Throwable
- the exception to throw from the method invocation on the proxy instance.public boolean equals(Object obj)
Object.equals(java.lang.Object)
so instances are only equal if they are identical.
proxy.equals(argument)
returns true if:
proxy
and argument
are of the same type
InvocationHandler
of argument
Subclasses can override this method to provide custom equality.
public int hashCode()
Object.hashCode()
. The dynamic proxies' hashCode()
will delegate to this method.
Subclasses can override this method to provide custom equality.public String toString()
Object.toString()
. The dynamic proxies' toString()
will delegate to this method.
Subclasses can override this method to provide custom string representation for the proxies.Copyright © 2017 lettuce.io. All rights reserved.