Package com.google.common.reflect
Class AbstractInvocationHandler
- java.lang.Object
-
- com.google.common.reflect.AbstractInvocationHandler
-
- All Implemented Interfaces:
InvocationHandler
@Beta public abstract class AbstractInvocationHandler extends Object implements InvocationHandler
Abstract implementation ofInvocationHandler
that handlesObject.equals(java.lang.Object)
,Object.hashCode()
andObject.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());
- Since:
- 12.0
-
-
Constructor Summary
Constructors Constructor Description AbstractInvocationHandler()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
equals(Object obj)
By default delegates toObject.equals(java.lang.Object)
so instances are only equal if they are identical.int
hashCode()
By default delegates toObject.hashCode()
.Object
invoke(Object proxy, Method method, Object[] args)
String
toString()
By default delegates toObject.toString()
.
-
-
-
Method Detail
-
invoke
public final Object invoke(Object proxy, Method method, @Nullable Object[] args) throws Throwable
proxy.hashCode()
delegates tohashCode()
proxy.toString()
delegates totoString()
proxy.equals(argument)
returns true if:proxy
andargument
are of the same type- and
equals(java.lang.Object)
returns true for theInvocationHandler
ofargument
- other method calls are dispatched to
handleInvocation(java.lang.Object, java.lang.reflect.Method, java.lang.Object[])
.
- Specified by:
invoke
in interfaceInvocationHandler
- Throws:
Throwable
-
equals
public boolean equals(Object obj)
By default delegates toObject.equals(java.lang.Object)
so instances are only equal if they are identical.proxy.equals(argument)
returns true if:proxy
andargument
are of the same type- and this method returns true for the
InvocationHandler
ofargument
Subclasses can override this method to provide custom equality.
-
hashCode
public int hashCode()
By default delegates toObject.hashCode()
. The dynamic proxies'hashCode()
will delegate to this method. Subclasses can override this method to provide custom equality.
-
toString
public String toString()
By default delegates toObject.toString()
. The dynamic proxies'toString()
will delegate to this method. Subclasses can override this method to provide custom string representation for the proxies.
-
-