Annotation Interface DefaultCall


@Documented @Retention(RUNTIME) @Target(PARAMETER) public @interface DefaultCall
A parameter with this annotation is assigned a proxy for invoking a default method that fits the intercepted method. If no suitable default method for the intercepted method can be identified, the target method with the annotated parameter is considered to be unbindable, unless a null value is requested by setting a property.
See Also:
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static enum 
    A binder for handling the DefaultCall annotation.
  • Optional Element Summary

    Optional Elements
    Modifier and Type
    Optional Element
    Description
    boolean
    Assigns null to the parameter if it is impossible to invoke the super method or a possible dominant default method, if permitted.
    boolean
    Determines if the generated proxy should be Serializable.
    If this parameter is not explicitly set, a parameter with the DefaultCall is only bound to a source method if this source method directly represents an unambiguous, invokable default method.
  • Element Details

    • targetType

      Class<?> targetType
      If this parameter is not explicitly set, a parameter with the DefaultCall is only bound to a source method if this source method directly represents an unambiguous, invokable default method. On the other hand, if a method is not defined unambiguously by an interface, not setting this parameter will exclude the target method with the annotated parameter from a binding to the source method.

       

      If this parameter is however set to an explicit interface type, a default method is always invoked on this given type as long as this type defines a method with a compatible signature. If this is not the case, the target method with the annotated parameter is no longer considered as a possible binding candidate of a source method.
      Returns:
      The target interface that a default method invocation is to be defined upon. If no such explicit target is set, this parameter should not be defined as the predefined void type encodes an implicit resolution.
      Default:
      void.class
    • serializableProxy

      boolean serializableProxy
      Determines if the generated proxy should be Serializable.
      Returns:
      true if the generated proxy should be Serializable.
      Default:
      false
    • nullIfImpossible

      boolean nullIfImpossible
      Assigns null to the parameter if it is impossible to invoke the super method or a possible dominant default method, if permitted.
      Returns:
      true if a null constant should be assigned to this parameter in case that a legal binding is impossible.
      Default:
      false