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 ofInvocationHandlerthat 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 booleanequals(java.lang.Object obj)By default delegates toObject.equals(java.lang.Object)so instances are only equal if they are identical.inthashCode()By default delegates toObject.hashCode().java.lang.Objectinvoke(java.lang.Object proxy, java.lang.reflect.Method method, java.lang.Object[] args)java.lang.StringtoString()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.Throwableproxy.hashCode()delegates tohashCode()proxy.toString()delegates totoString()proxy.equals(argument)returns true if:proxyandargumentare of the same type- and
equals(java.lang.Object)returns true for theInvocationHandlerofargument
- other method calls are dispatched to
handleInvocation(java.lang.Object, java.lang.reflect.Method, java.lang.Object[]).
- Specified by:
invokein 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:proxyandargumentare of the same type- and this method returns true for the
InvocationHandlerofargument
Subclasses can override this method to provide custom equality.
- Overrides:
equalsin 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:
hashCodein 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:
toStringin classjava.lang.Object
-
-