BridgeMethodResolver (Spring Framework 3.2.1.RELEASE API)
Date: 2013-01-24

org.springframework.core

## Class BridgeMethodResolver

- java.lang.Object
- - org.springframework.core.BridgeMethodResolver

-     public abstract class BridgeMethodResolver
      extends Object

  Helper for resolving synthetic `bridge Methods` to the `Method` being bridged.

  Given a synthetic `bridge Method` returns the `Method` being bridged. A bridge method may be created by the compiler when extending a parameterized type whose methods have parameterized arguments. During runtime invocation the bridge `Method` may be invoked and/or used via reflection. When attempting to locate annotations on `Methods`, it is wise to check for bridge `Methods` as appropriate and find the bridged `Method`.

  See The Java Language Specification for more details on the use of bridge methods.

  Since:
    2.0
  Author:
    Rob Harrop, Juergen Hoeller

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `BridgeMethodResolver()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `static Method` | `findBridgedMethod(Method bridgeMethod)` Find the original method for the supplied `bridge Method`.
    `static boolean` | `isVisibilityBridgeMethodPair(Method bridgeMethod, Method bridgedMethod)` Compare the signatures of the bridge method and the method which it bridges.

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

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

- - ### Constructor Detail

    - #### BridgeMethodResolver

          public BridgeMethodResolver()

  - ### Method Detail

    - #### findBridgedMethod

          public static Method findBridgedMethod(Method bridgeMethod)

      Find the original method for the supplied `bridge Method`.

      It is safe to call this method passing in a non-bridge `Method` instance. In such a case, the supplied `Method` instance is returned directly to the caller. Callers are not required to check for bridging before calling this method.

      Parameters:
        `bridgeMethod` - the method to introspect
      Returns:
        the original method (either the bridged method or the passed-in method if no more specific one could be found)

    - #### isVisibilityBridgeMethodPair

          public static boolean isVisibilityBridgeMethodPair(Method bridgeMethod,
                                             Method bridgedMethod)

      Compare the signatures of the bridge method and the method which it bridges. If the parameter and return types are the same, it is a 'visibility' bridge method introduced in Java 6 to fix http://bugs.sun.com/view_bug.do?bug_id=6342411. See also http://stas-blogspot.blogspot.com/2010/03/java-bridge-methods-explained.html
      Returns:
        whether signatures match as described