Class AbstractInvocationHandler
java.lang.Object
com.google.common.reflect.AbstractInvocationHandler
- All Implemented Interfaces:
- InvocationHandler
Abstract implementation of 
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());
 - Since:
- 12.0
- Author:
- Ben Yu
- 
Constructor SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptionbooleanBy default delegates toObject.equals(java.lang.Object)so instances are only equal if they are identical.handleInvocation(Object proxy, Method method, @Nullable 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, exceptObject.equals(java.lang.Object),Object.hashCode()andObject.toString().inthashCode()By default delegates toObject.hashCode().proxy.hashCode()delegates tohashCode()proxy.toString()delegates totoString()proxy.equals(argument)returns true if:proxyandargumentare of the same type andequals(java.lang.Object)returns true for theInvocationHandlerofargumentother method calls are dispatched tohandleInvocation(java.lang.Object, java.lang.reflect.Method, java.lang.Object[]).toString()By default delegates toObject.toString().
- 
Constructor Details- 
AbstractInvocationHandlerpublic AbstractInvocationHandler()Constructor for use by subclasses.
 
- 
- 
Method Details- 
invokepublic final @Nullable Object invoke(Object proxy, Method method, @Nullable Object @Nullable [] args) throws Throwable - proxy.hashCode()delegates to- hashCode()
- proxy.toString()delegates to- toString()
- proxy.equals(argument)returns true if:- proxyand- argumentare 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 interface- InvocationHandler
- Throws:
- Throwable
 
- 
handleInvocationprotected abstract @Nullable Object handleInvocation(Object proxy, Method method, @Nullable 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, exceptObject.equals(java.lang.Object),Object.hashCode()andObject.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[]),argswill never be null. When the method has no parameter, an empty array is passed in.- Throws:
- Throwable
 
- 
equalsBy default delegates toObject.equals(java.lang.Object)so instances are only equal if they are identical.proxy.equals(argument)returns true if:- proxyand- argumentare of the same type
- and this method returns true for the InvocationHandlerofargument
 Subclasses can override this method to provide custom equality. 
- 
hashCodepublic 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.
- 
toStringBy 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.
 
-