Class AbstractInvocationHandler

  • All Implemented Interfaces:
    java.lang.reflect.InvocationHandler

    @Beta
    public abstract class AbstractInvocationHandler
    extends java.lang.Object
    implements java.lang.reflect.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
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean equals​(java.lang.Object obj)
      By default delegates to Object.equals(java.lang.Object) so instances are only equal if they are identical.
      int hashCode()
      By default delegates to Object.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 to Object.toString().
      • Methods inherited from class java.lang.Object

        getClass, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • AbstractInvocationHandler

        public AbstractInvocationHandler()
    • 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

        Specified by:
        invoke in interface java.lang.reflect.InvocationHandler
        Throws:
        java.lang.Throwable
      • equals

        public boolean equals​(java.lang.Object obj)
        By default delegates to 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
        • and this method returns true for the InvocationHandler of argument

        Subclasses can override this method to provide custom equality.

        Overrides:
        equals in class java.lang.Object
      • hashCode

        public int hashCode()
        By default delegates to Object.hashCode(). The dynamic proxies' hashCode() will delegate to this method. Subclasses can override this method to provide custom equality.
        Overrides:
        hashCode in class java.lang.Object
      • toString

        public java.lang.String toString()
        By default delegates to Object.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 class java.lang.Object