org.springframework.aop.support

## Class StaticMethodMatcher

- java.lang.Object
- - org.springframework.aop.support.StaticMethodMatcher

- All Implemented Interfaces:
    MethodMatcher
  Direct Known Subclasses:
    AnnotationMethodMatcher, StaticMethodMatcherPointcut

      public abstract class StaticMethodMatcher
      extends Object
      implements MethodMatcher

  Convenient abstract superclass for static method matchers, which don't care about arguments at runtime.

- - ### Field Summary

    - ### Fields inherited from interface org.springframework.aop.MethodMatcher

      `TRUE`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `StaticMethodMatcher()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `isRuntime()` Is this MethodMatcher dynamic, that is, must a final call be made on the `MethodMatcher.matches(java.lang.reflect.Method, Class, Object[])` method at runtime even if the 2-arg matches method returns `true`?
    `boolean` | `matches(Method method, Class<?> targetClass, Object[] args)` Check whether there a runtime (dynamic) match for this method, which must have matched statically.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface org.springframework.aop.MethodMatcher

      `matches`

- - ### Constructor Detail

    - #### StaticMethodMatcher

          public StaticMethodMatcher()

  - ### Method Detail

    - #### isRuntime

          public final boolean isRuntime()

      Description copied from interface: `MethodMatcher`
      Is this MethodMatcher dynamic, that is, must a final call be made on the `MethodMatcher.matches(java.lang.reflect.Method, Class, Object[])` method at runtime even if the 2-arg matches method returns `true`?

      Can be invoked when an AOP proxy is created, and need not be invoked again before each method invocation,

      Specified by:
        `isRuntime` in interface `MethodMatcher`
      Returns:
        whether or not a runtime match via the 3-arg `MethodMatcher.matches(java.lang.reflect.Method, Class, Object[])` method is required if static matching passed

    - #### matches

          public final boolean matches(Method method,
                        Class<?> targetClass,
                        Object[] args)

      Description copied from interface: `MethodMatcher`
      Check whether there a runtime (dynamic) match for this method, which must have matched statically.

      This method is invoked only if the 2-arg matches method returns `true` for the given method and target class, and if the `MethodMatcher.isRuntime()` method returns `true`. Invoked immediately before potential running of the advice, after any advice earlier in the advice chain has run.

      Specified by:
        `matches` in interface `MethodMatcher`
      Parameters:
        `method` - the candidate method
        `targetClass` - the target class (may be `null`, in which case the candidate class must be taken to be the method's declaring class)
        `args` - arguments to the method
      Returns:
        whether there's a runtime match
      See Also:
        `MethodMatcher.matches(Method, Class)`