Package com.google.common.reflect
Class AbstractInvocationHandler
- java.lang.Object
-
- com.google.common.reflect.AbstractInvocationHandler
-
- All Implemented Interfaces:
java.lang.reflect.InvocationHandler
@Beta public abstract class AbstractInvocationHandler extends java.lang.Object implements java.lang.reflect.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(java.lang.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()
.java.lang.Object
invoke(java.lang.Object proxy, java.lang.reflect.Method method, java.lang.Object[] args)
java.lang.String
toString()
By default delegates toObject.toString()
.
-
-
-
Method Detail
-
invoke
public final java.lang.Object invoke(java.lang.Object proxy, java.lang.reflect.Method method, @Nullable java.lang.Object[] args) throws java.lang.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 interfacejava.lang.reflect.InvocationHandler
- Throws:
java.lang.Throwable
-
equals
public boolean equals(java.lang.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.
- Overrides:
equals
in classjava.lang.Object
-
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.- Overrides:
hashCode
in classjava.lang.Object
-
toString
public java.lang.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.- Overrides:
toString
in classjava.lang.Object
-
-