Class AbstractInvocationHandler

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

    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
    Author:
    Ben Yu
    • Method Detail

      • equals

        public boolean equals​(@CheckForNull
                              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