@Beta public abstract class AbstractInvocationHandler extends Objectimplements InvocationHandler
InvocationHandler that handles
Object.equals(java.lang.Object) ,
Object.hashCode() and
Object.toString() . For example:
class Unsupported extends AbstractInvocationHandler {
protected Object handleInvocation(
Object proxy, Method method, Object[] args) {
throw new UnsupportedOperationException();
}
}
CharSequence unsupported = Reflection.newProxy(CharSequence.class, new Unsupported());
| Constructor and Description |
|---|
AbstractInvocationHandler()
|
| Modifier and Type | Method and Description |
|---|---|
boolean |
equals(Object
By default delegates to
Object so instances are only equal if they are identical.
|
protected abstract Object |
handleInvocation(Object
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,
Object and
Object.
|
int |
hashCode()
By default delegates to
Object.
|
Object |
invoke(Object
|
String |
toString()
By default delegates to
Object.
|
public final Objectinvoke(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
Throwable
protected abstract ObjecthandleInvocation(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.
Throwable
public boolean equals(Objectobj)
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 StringtoString()
Object.toString() . The dynamic proxies'
toString() will delegate to this method. Subclasses can override this method to provide custom string representation for the proxies.